A gamified cybersecurity learning platform with 10 progressive difficulty levels, each teaching a specific security concept.
- User Authentication: Secure user authentication and profile management with Clerk
- 10 Progressive Learning Levels:
- Level 1: Security Fundamentals (CIA triad, basic principles)
- Level 2: Network Security (protocols, firewalls, packet analysis)
- Level 3: Web Security (OWASP Top 10, injection attacks)
- Level 4: Cryptography (encryption, hashing, digital signatures)
- Level 5: Authentication & Authorization (access control, MFA)
- Level 6: Social Engineering (phishing detection, scenarios)
- Level 7: Malware Analysis (safe sample analysis)
- Level 8: Digital Forensics (evidence collection, analysis)
- Level 9: Incident Response (IR frameworks, simulations)
- Level 10: Advanced Persistent Threats (complex attacks)
- Interactive Challenges: Various activity types including quizzes, code challenges, labs, and simulations
- Gamification: Points system, achievements, and progress tracking
- Certificates: Verifiable certificates upon completion of levels
- Frontend: Next.js, React, Tailwind CSS, shadcn/ui
- Backend: Next.js API routes
- Database: PostgreSQL with Prisma ORM
- Authentication: Clerk
- Node.js 18+ and npm
- PostgreSQL database
-
Clone the repository:
git clone https://github.com/YathishGP003/Cyber-Quest-v1.git
-
Install dependencies:
npm install
-
Set up environment variables:
- Copy
.env.example
to.env
and fill in your database and Clerk credentials
- Copy
-
Set up the database:
npm run prisma:generate npm run prisma:push npm run prisma:seed
-
Start the development server:
npm run dev
-
Open http://localhost:3000 in your browser.
GET /api/levels
- Get all levelsGET /api/levels/:levelId
- Get a specific level with its activities
GET /api/activities/:activityId
- Get a specific activityPOST /api/activities/:activityId/progress
- Submit activity progress
GET /api/users
- Get current userPOST /api/users
- Create or update userGET /api/users/progress
- Get user progressGET /api/users/achievements
- Get user achievementsPOST /api/users/achievements
- Award an achievement to a user
GET /api/achievements
- Get all achievements
GET /api/certificates
- Get all certificates or verify a certificatePOST /api/certificates
- Generate a certificate
This project is licensed under the MIT License - see the LICENSE file for details.