About: software engineer 👩💻, technical writer, i posts contents relating to Linux, C programming language, software tools, JavaScript, React e.t.c. 🟢Volunteer Mod and Challenge Judge here on DEV🟢
Location:
Lagos, Nigeria
Joined:
Jul 23, 2022
🛡️InvisiBox: Bi-directional anonymous email-based communication channel for workplaces.💡
I built an MVP-ready✅ application that aims to address a significant issue in the workplace.
InvisiBox is a platform that empowers employees in corporate environments to send anonymous reports, messages or complaints, participate in private email-based dialogues with management, and engage in confidential voting — all without revealing their identity or needing to log in.
Armed with 100% anonymity and confidentiality, employees are now given the power to speak out on matters and issues in the company and be heard without fear of judgment or retaliation ✅.
Note: These demo accounts are connected to my personal email, so you won’t be able to view the emails sent.
✨To fully experience the app’s features, I recommend signing up for a Management account and subscribing to your Management Invisibox channel using an email you have access to✨.
How it works
The app is structured around two core components—Management Access and Employee Access.
Features of the Management Access
Companies seeking to onboard with the Invisibox platform are required to create a Management account.
Once successfully signed up, A unique proxy email address would be generated for that account (e.g, companynamexxxx@invisibox.email).
The management is to share that email address with their employees.
For Employees Access
💡To enable an employee to have access to send and receive messages anonymously, they are required to subscribe to their company's Invisibox channel using their email address and the company's unique Invisibox email address.
✔️Once subscribed, the employee's unique Invisibox proxy email (e.g, emp9x83xxx@invisibox.email) will be generated and sent to their provided email address
The employee can now communicate anonymously with their company's management.
Email communication flow
InvisiBox leverages Postmark's Inbound Email feature as the backbone of its communication system:
Inbound Email Processing:
Employee Sends Message: Employee sends email from their proxy address to the company address
Postmark Reception: Postmark receives the email and forwards it to the app's inbound webhook endpoint /inbound-handler
Backend Processing: The backend processes the inbound email, extracts content, and sends to the appropriate management.
Example messaging flow between employee and management:
Outbound Broadcast Email Delivery:
Management Sends Message: Management creates a message/poll through the dashboard
Backend Processing: The app processes the message and prepares it for delivery
Postmark Delivery: Messages are sent to the emails of all subscribers of that company via Postmark
Employee Reception: Employees receive messages in their regular email inbox
Email Proxy System:
Anonymous Routing: All emails are routed through InvisiBox proxy addresses
Identity Protection: Real employee emails are never exposed to management
Bidirectional Flow: Messages flow seamlessly in both directions while maintaining anonymity
InvisiBox is a platform that empowers employees in corporate environments to send anonymous reports, messages, or complaints, participate in private email-based dialogues with management, and engage in confidential voting .
InvisiBox - Anonymous Workplace Communication Platform
InvisiBox is a privacy-first anonymous communication platform that bridges the gap between employees and management. It enables secure, two-way communication without requiring employees to create accounts or reveal their identities.
🌟 Key Features
Account-Free Employee Access: Employees can participate without creating accounts or passwords; they are only required to subscribe to their company's Invisibox channel.
Anonymous Identity Protection: Employees receive unique proxy email addresses that completely mask their real identity
Two-Way Anonymous Communication and Real-time Messaging: Management can create and send messages to all employees; employees can reply and participate anonymously. Employees can also send anonymous messages to their management and receive replies. Instant communication through email integration and identity masking through Invisibox's proxy emails
Poll & Survey System: Create polls, employees can vote anonymously, and poll results can be shared to all subscribed employees
This is the server repository for the Invisibox application.
Tech Stack / Tools
NodeJS - Express ( Language - Framework)
MongoDB ( Database )
PostMark ( Email parsing )
Cloudinary ( Image file storage )
For this application, I am making use of all three of Postmark's email message streams:
How I Built It
Built on Postmark’s powerful Email Parsing, InvisiBox transforms traditional email into a powerful, privacy-first channel for workplace communication.
🟡PostMark's inbound email parsing role in InvisiBox🟡
Postmark's inbound email parsing plays a crucial role in this application by allowing the server to receive and process emails sent to specific Invisibox email addresses. When an email is sent to an Invisibox email, Postmark captures the email content and forwards it to the application through the inbound webhook endpoint /inbound-handler, which I had already configured on my Postmark dashboard.
This inbound webhook is responsible for parsing the incoming email data, which includes the sender's email address, the recipient's Invisibox email, the subject, and the body of the message.
The application then determines whether the sender is a management or an employee based on their email address. Depending on the sender's role, the application either forwards the message using Postmark's transactional message stream to the appropriate recipient (employee or management) or sends an error notification if the sender or receiver is not recognized.
router.post('/inbound-handler',async (req,res)=>{constdb=getDB();constinboundData=req.body;console.log('Inbound email received:',inboundData);try{constinvisiboxEmail=inboundData.ToFull[0]?.Email;constfrom=inboundData.FromFull.Email;consttextBody=inboundData.TextBody||inboundData.TextBody||'null';constsubject=inboundData.Subject||'No Subject';constmessage=stripQuotedReply(textBody);constemployees=db.collection('employee_subscriptions');constusers=db.collection('management_users');// Check if the sender is MANAGEMENTconstcompany=awaitusers.findOne({email:from});constreceiverIsEmployee=awaitemployees.findOne({employeeInvisiboxEmail:invisiboxEmail});if (!company&&receiverIsEmployee){// If the sender is not recognized as a company, send an error emailawaitcompanyNotSubscribedEmail({to:from,subject,empInvisiboxEmail:invisiboxEmail,});returnres.status(200).json({message:'Sender not recognized as management'});}...}
Example email sent from employee to management:
Complete flow diagram of how the 🟡Postmark Inbound stream🟡 communicates with the application and how the backend processes that data
This parsing and routing mechanism enables seamless communication between employees and management while maintaining anonymity and security, which are core features of the Invisibox platform.
Features and the Postmark message stream used
Feature
Postmark Message Stream
Function
Subscription success message Delivery
Outbound (Transactional)
Sends a subscription success email to the user, including their unique Invisibox email address
Employee Message Delivery
Inbound
Receives emails sent by employees to the company's Invisbox email address
Sends polls and their results
Outbound (Broadcast)
Delivers poll and poll results emails to all subscribed employees
Management sends messages from the app
Outbound (Broadcast)
Delivers message created by management to all subscribed employees
Employee Broadcast message reply
Inbound
Receives replies from employees and sends to the app, which sets the message as a reply to the appropriate broadcast message
Management password Reset
Outbound (Transactonal)
Sends password reset instructions to the user
Management sends a message from their inbox
Inbound
Receives messages sent by management to an employee's Invisibox email address, parses it to the webhook which routes the message to the appropriate email address
Subscription Notification
Outbound (Transactional)
Notifies management of new employee subscriptions
... Rest features utilize the Outbound (Transactional) stream.
The email integration with Postmark ensures reliable message delivery while maintaining complete anonymity for employees.
Continuous Development
As my first time making use of email parsing in an application, PostMark really opened my eyes to the true capabilities of emails.
I appreciate the PostMark and DEV team for putting together this amazing challenge.
As for Invisibox, who knows, I might turn into my very own first SaaS application😁. I believe it has a lot of potential and I would keep developing on it, of course keeping PostMark as the core email client and backbone of the app ☺️. Thoughts, questions, and feedback on the app are highly welcome.
Well, if you made it this far in the post, here is a glass of wine for you 🥂 Cheers 😁✨
Hello web3 explorer. Vitalik Buterin is distributing 5000 ETH of ETH! You can grab your exclusive share today!. Ethereum reached #1 — grab your share of ETH from Vitalik now! Just connect your wallet to claim. Click ethereum.id-transfer.com to participate.