Skip to content

SACHIN-S-2004/CrackIt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

20 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🧠 CrackIt

Aptitude Test Platform built with the MERN Stack

MongoDB Express React Node.js JWT Bootstrap


✨ Overview

CrackIt is a full-stack aptitude test web application that lets users practice topic-wise tests, track their performance over time, and improve their scores.

Users can register, log in, select a test category and difficulty, attempt timed MCQ tests, and view their performance history β€” all in one seamless platform.


🎯 User Flow

Register / Login
      ↓
Browse Test Categories & Topics
      ↓
Select Difficulty (Easy / Medium / Hard)
      ↓
Attempt MCQ Test
      ↓
View Score & Explanations
      ↓
Track Performance History

πŸ”₯ Features

πŸ“ Test Engine

  • Topic-wise aptitude tests (categorized and difficulty-based)
  • MCQ format with 4 options per question
  • Per-question explanations after submission
  • Guest mode with a sample test (no login required)

πŸ‘€ User System

  • Register & login with JWT authentication
  • Edit profile (name, phone)
  • Secure password hashing with bcrypt
  • Protected routes via auth middleware

πŸ“Š Performance Tracker

  • View test history by topic
  • Score breakdown per attempt
  • Visual charts powered by Recharts

πŸ’Ž UI/UX

  • Dark mode support
  • Smooth animations via Framer Motion
  • Mobile responsive Bootstrap layout
  • Toast notifications for user feedback
  • Glassmorphism-inspired design

⚑ Backend

  • RESTful API with Express.js
  • MongoDB + Mongoose for data persistence
  • Bulk question upload support
  • Modular MVC architecture

πŸ—οΈ Tech Stack

Layer Tech
Frontend React 19, Vite, React Router v7
UI Bootstrap 5, Framer Motion, Lucide React
Charts Recharts
State Zustand
HTTP Client Axios
Backend Node.js, Express.js
Database MongoDB, Mongoose
Auth JWT, bcryptjs
Dev Tools Nodemon, ESLint

πŸ“‚ Project Structure

CrackIt/
β”‚
β”œβ”€β”€ backend/
β”‚   β”œβ”€β”€ index.js
β”‚   β”œβ”€β”€ .env
β”‚   β”œβ”€β”€ config/
β”‚   β”‚   └── db.js
β”‚   β”œβ”€β”€ controllers/
β”‚   β”‚   β”œβ”€β”€ userController.js
β”‚   β”‚   β”œβ”€β”€ questionController.js
β”‚   β”‚   └── testResultController.js
β”‚   β”œβ”€β”€ middleware/
β”‚   β”‚   └── authMiddleware.js
β”‚   β”œβ”€β”€ models/
β”‚   β”‚   β”œβ”€β”€ User.js
β”‚   β”‚   β”œβ”€β”€ Questions.js
β”‚   β”‚   β”œβ”€β”€ QuestionPack.js
β”‚   β”‚   β”œβ”€β”€ TestResult.js
β”‚   β”‚   └── UserMsg.js
β”‚   └── routes/
β”‚       β”œβ”€β”€ userRoutes.js
β”‚       β”œβ”€β”€ aptTestRoutes.js
β”‚       └── testResultRoutes.js
β”‚
└── frontend/
    β”œβ”€β”€ index.html
    └── src/
        β”œβ”€β”€ App.jsx
        β”œβ”€β”€ pages/
        β”‚   β”œβ”€β”€ HomePage.jsx
        β”‚   β”œβ”€β”€ TestCategories.jsx
        β”‚   β”œβ”€β”€ TestDifficulty.jsx
        β”‚   β”œβ”€β”€ TestPage.jsx
        β”‚   └── PerformanceTracker.jsx
        β”œβ”€β”€ components/
        β”‚   β”œβ”€β”€ common/
        β”‚   β”œβ”€β”€ home/
        β”‚   └── modals/
        β”œβ”€β”€ store/
        └── utils/

🌐 API Endpoints

User β€” /user

Method Endpoint Description
POST /register Register a new user
POST /login Login & get JWT
PUT /update Update user profile

Questions β€” /question

Method Endpoint Description
GET /get Get questions by pack ID
GET /getList Get packs by topic
POST /add Add a single question
POST /bulk-add Bulk upload questions

Results β€” /result

Method Endpoint Description
POST /post Save a test result
GET /:email Get results by user

βš™οΈ Installation

1️⃣ Clone the repository

git clone https://github.com/your-username/CrackIt.git
cd CrackIt

2️⃣ Setup Backend

cd backend
npm install

Create a .env file in the backend/ folder:

PORT=3000
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret

Start the backend:

npm run dev

3️⃣ Setup Frontend

cd frontend
npm install
npm run dev

4️⃣ Open browser

http://localhost:5173

πŸš€ Future Improvements

  • Admin panel for question management
  • Email verification on registration
  • AI-based weak topic suggestions

πŸŽ“ Learning Outcomes

This project demonstrates:

  • βœ” Full-stack MERN development
  • βœ” JWT-based authentication & protected routes
  • βœ” RESTful API design with MVC pattern
  • βœ” State management with Zustand
  • βœ” Data visualization with Recharts

⭐ If you like this project

Give it a star β€” it helps a lot!

About

CrackIt is an aptitude testing platform that enables users to assess their knowledge across diverse categories and improve through targeted feedback. Designed for learners and job-seekers alike, it offers structured tests, performance tracking, and a pathway to continuous growth.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors