Skip to content

An exam management platform with secure authentication, step-based progression, and level-based assessments. Includes user profiles, progress tracking, and a scalable architecture for modern education & testing solutions.

Notifications You must be signed in to change notification settings

a4arpon/online-exam-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

9 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

English Therapy Platform

This project is the backend (server side) of an online English learning and testing platform. It’s designed to handle everything behind the scenes: user accounts, test delivery, result tracking, and certificate generation.

I built it to:

  1. Test and explore modern backend architecture with NestJS and Fastify.
  2. Create a solid, production-ready base for a real platform.
  3. Show how to structure a clean, maintainable project for long-term growth.

πŸ“ What’s Done vs. What’s Left

  • Backend: ~90% complete.

    • Fully functional authentication
    • Exam question management
    • Progress calculation and result storage
    • Admin panel API for managing users and certificates
    • Email service for OTP verification and notifications
  • Frontend: ~40% complete.

    • Already has login, registration, and session handling
    • Core structure in place but missing most of the UI for exams and admin features

If someone picks this up, they could connect the existing backend to a finished frontend without starting from scratch.


πŸ” Why This Project Stands Out

If you’re hiring, here’s what this project shows about my skills:

  1. Planning and Architecture

    • I didn’t just write code β€” I organized it into logical modules so features are easy to add or change later.
    • Each feature (auth, exams, certificates) is isolated in its own folder.
  2. Security Awareness

    • Role-based access (admin, user)
    • Token-based authentication (JWT)
    • Email verification with OTP
  3. Scalability

    • Built on NestJS + Fastify for better performance under heavy load.
    • Follows a modular structure so new features don’t break existing ones.
  4. Real-World Features

    • Email integration
    • Result tracking & certificates
    • Admin tools to manage platform content

πŸ›  Tech Stack

Even without deep technical details, here’s the big picture:

  • NestJS + Fastify β€” The main framework and web server
  • MongoDB + Mongoose β€” Database to store users, exams, and results
  • JWT Authentication β€” Secure login sessions
  • Nodemailer β€” Sends OTPs and notifications by email
  • Helmet & CORS β€” Basic security protections

πŸ“‚ How It’s Organized

The backend is organized like this:

api-server/
β”œβ”€β”€ auth-guard/        # Security checks for routes
β”œβ”€β”€ decorators/        # Helpers for cleaner code
β”œβ”€β”€ libs/              # Core tools (email, DB connection, env configs)
β”œβ”€β”€ modules/           # Main features
β”‚   β”œβ”€β”€ authentication
β”‚   β”œβ”€β”€ tests
β”‚   β”œβ”€β”€ certificates
β”‚   β”œβ”€β”€ user
β”‚   └── admin-*
β”œβ”€β”€ schemas/           # Database models
└── main.ts            # App starting point

This makes it easy for another developer to find exactly where a feature lives.


πŸš€ How to Run

For a developer picking this up:

# Install dependencies
npm install

# Start in development mode
npm run start:dev

The server will start and connect to MongoDB. API documentation is auto-generated by NestJS Swagger (available at /docs when running).


🀝 Contributing or Taking Over

If you want to:

  • Finish the frontend
  • Expand backend features
  • Deploy to production

You can fork the repo, make changes, and submit a pull request. I’ve kept the structure clean so onboarding is fast.

About

An exam management platform with secure authentication, step-based progression, and level-based assessments. Includes user profiles, progress tracking, and a scalable architecture for modern education & testing solutions.

Topics

Resources

Stars

Watchers

Forks