Secure Idea Vault is a secure web platform that encrypts, authenticates, and digitally signs research idea submissions while providing QR-based ownership verification and strict role-based access control. A cyber-security focused web application for secure submission, storage, and ownership verification of research and startup ideas using encryption, digital signatures, QR verification, and role-based access control.
- NIST SP 800-63-2 compliant authentication
- Single-factor and multi-factor login (Password + OTP)
- Role-Based Access Control (Student, Mentor, Admin)
- Salted password hashing (bcrypt)
- Secure RSA key exchange
- AES encrypted idea storage
- Digitally signed ownership certificates
- QR-code based public verification
- Audit logging and attack prevention mechanisms
Role Access Student Submit and manage own ideas Mentor Review assigned ideas Admin Approve, sign and certify ideas
Component Implementation Authentication Password + OTP (MFA) Authorization Access Control List (ACL) Encryption AES (data), RSA (key exchange) Hashing bcrypt + salt Digital Signature RSA + SHA-256 Encoding QR Code
- Frontend: React.js
- Backend: Node.js + Express
- Database: MongoDB
- Crypto: Node.js crypto
- OTP: Nodemailer
- QR Code: qrcode
- Authentication Module
- Access Control Module
- Idea Vault Module
- Certificate & Digital Signature Module
- QR Verification Module
- Audit Logging Module
-
Clone the Repository
git clone https://github.com/your-username/idea-vault-secure.git cd secure-idea-vault -
Backend Setup
cd backend npm install -
Configure Environment
- Create a
.envfile in thebackenddirectory. - Copy the contents from
.env.exampleto.env. - Update
MONGO_URIwith your MongoDB connection string. - Update
EMAIL_USERandEMAIL_PASSwith your email credentials (use App Password for Gmail).
- Create a
-
Run the Application
# Development Mode npm run dev # Production Mode npm start
To deploy this project to a cloud provider (e.g., Render, Vercel, AWS):
- Push your code to GitHub/GitLab.
- Connect your repository to the cloud provider.
- Environment Variables: In the provider's dashboard (Settings > Environment Variables), add the keys from
.env.example(MONGO_URI,JWT_SECRET, etc.) with your production values.Note: You do NOT upload the
.envfile. It is ignored by git for security.
This section describes the flow for an End User (Student/Mentor) interacting with the deployed application. They do not need to configure anything.
- Registration:
- User signs up with email and password.
- System Hashes password (bcrypt) + Salt.
- Login (MFA):
- User enters Email + Password.
- Step 1: Server verifies password hash.
- Step 2: Server sends a 6-digit OTP to the user's email.
- User checks their email inbox and enters the OTP code.
- Idea Submission (Secure):
- User uploads text/file.
- System encrypts data (AES) and digitally signs it.
- Verification:
- User can generate a QR code for their idea.
- Anyone scanning the QR code can verify the idea's ownership and integrity.
- Brute-force protection
- OTP expiration
- Input validation
- Secure sessions
- Rate limiting