A state-of-the-art secure platform designed for students to submit research topics confidentially and securely. This system integrates advanced cryptographic techniques including AES Encryption, RSA Digital Signatures, Role-Based Access Control (RBAC), and Multi-Factor Authentication (MFA) to ensure data integrity, confidentiality, and non-repudiation.
- 🔒 Secure Authentication:
- Students: Multi-Factor Authentication (Password + Email OTP).
- Faculty/Admins: Secure Password Hashing (SHA-256 with Salt).
- 🛡️ Advanced Encryption:
- Submissions are encrypted using AES-256 (CFB Mode).
- Hybrid encryption model ensures efficient and secure data storage.
- ✍️ Digital Signatures & Integrity:
- Every submission is signed using the student's unique RSA Private Key.
- Ensures Non-Repudiation (students cannot deny their submission) and Tamper Detection.
- 🎫 Secure Receipts:
- Students receive a tamper-evident cryptographic receipt upon submission.
- Receipts are generated via
SHA256(Topic + Hash + Timestamp + UserID).
- 👥 Role-Based Access Control (RBAC):
- Student: Submit topics, View own history.
- Teacher: View all topics, Verify signatures.
- Admin: System management, Lock/Unlock submissions, User management.
- 🎨 Modern UI:
- Futuristic "Cybersecurity Control Panel" aesthetic.
- Built with React (Vite) and Tailwind CSS.
- Backend: Python (Flask)
- Frontend: React.js (Vite), Tailwind CSS, Framer Motion
- Database: SQLite (with encrypted fields)
- Cryptography:
cryptographylibrary (Python), SHA-256, AES-256, RSA-2048
Follow these steps to get the project running locally.
- Python 3.8+
- Node.js & npm
-
Navigate to the project root directory:
cd CYS -
(Optional) Create and activate a virtual environment:
python -m venv venv # Windows venv\Scripts\activate # Mac/Linux source venv/bin/activate
-
Install Python dependencies:
pip install -r requirements.txt
-
Initialize the database (if needed):
- The system should automatically initialize
database/cys.dbon the first run usingdatabase/schema.sql.
- The system should automatically initialize
-
Start the Flask Server:
python app.py
- The backend will run at
http://localhost:5000.
- The backend will run at
-
Open a new terminal and navigate to the
frontendfolder:cd CYS/frontend -
Install Node dependencies:
npm install
-
Start the Development Server:
npm run dev
- The frontend will typically run at
http://localhost:5173.
- The frontend will typically run at
-
Register a User:
- Open the web app.
- Navigate to the Register page.
- Create an account as a Student (default). Note: Admin/Teacher accounts may need manual creation or DB adjustment depending on configuration.
-
Student Workflow:
- Log in (enter Email & Password -> enter OTP sent to email).
- Go to Submit Topic.
- Enter your topic details and submit.
- View your Secure Receipt and submission status.
-
Teacher/Admin Workflow:
- Log in.
- Navigate to the Dashboard.
- Teachers can view all encrypted topics and verify their digital signatures.
- Admins can lock the system to prevent further submissions.
app.py: Main entry point for the Flask backend.auth/: Authentication logic (Login, Register, MFA).crypto/: Cryptographic modules (AES encryption, RSA keys, Hashing).database/: Database schema and connection logic.frontend/: React source code (Components, Pages, Tailwind config).rbac/: Role-Based Access Control logic (Permissions).routes/: API route definitions.services/: Business logic (Email service, Topic service).PRESENTATION_GUIDE.md: Detailed explanation of security features for presentation purposes.