Skip to content

HarshaNaidu11/Prepify

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Prepify

Prepify is a full-stack placement preparation platform that helps students manage the complete journey of placement readiness in one workspace: goals, coding practice, interviews, resources, MCQs, resume analysis, company-specific preparation, and progress analytics.

It combines a React frontend with an Express + MongoDB backend and is built as a practical, portfolio-grade product rather than a simple CRUD demo.

Why This Project Exists

Placement preparation usually gets scattered across spreadsheets, coding platforms, notes apps, PDFs, and random reminders. Prepify brings those workflows together so a student can:

  • track progress consistently
  • prepare by company and topic
  • manage goals and streaks
  • analyze resume quality
  • review interview history
  • stay organized in one product

Core Features

Authentication and User Management

  • JWT-based signup and login
  • Google sign-in support
  • password reset flow
  • protected routes and session-aware frontend auth state
  • editable user profile with preparation preferences

Preparation Tracking

  • coding problem tracking
  • topic and resource organization
  • MCQ practice support
  • progress-oriented dashboards
  • streaks, levels, XP, and achievement-style motivation

Goals and Analytics

  • daily, weekly, and monthly goals
  • progress updates and completion tracking
  • dashboard analysis and section-level visibility
  • structured preparation insights

Resume Analyzer

  • upload PDF, DOC, or DOCX resumes
  • parse structured education and experience content
  • ATS-style resume scoring
  • identify missing skills and formatting issues

Interviews and Companies

  • track interview rounds and outcomes
  • maintain company-specific preparation details
  • save company interview experiences

Notifications and Support Features

  • notification routes and unread counts
  • reminder-oriented flows
  • email service integration for password reset and updates

Tech Stack

Frontend

  • React 18
  • React Router
  • Tailwind CSS
  • Framer Motion
  • Recharts
  • Axios
  • Heroicons
  • React Hot Toast

Backend

  • Node.js
  • Express
  • MongoDB with Mongoose
  • JWT
  • bcryptjs
  • multer
  • pdf-parse
  • mammoth
  • nodemailer
  • express-rate-limit
  • helmet

Project Structure

pp/
|-- backend/
|   |-- config/
|   |-- middleware/
|   |-- models/
|   |-- routes/
|   |-- services/
|   |-- server.js
|-- frontend/
|   |-- public/
|   |-- src/
|   |   |-- components/
|   |   |-- context/
|   |   |-- pages/
|   |   |-- utils/
|-- docs/
|-- .gitignore
|-- README.md

Important Modules

Backend Route Areas

The backend is organized around route modules in backend/routes.

  • auth.js for authentication and user account flows
  • resume.js for resume upload, parsing, scoring, and persistence
  • goals.js for goal creation and progress tracking
  • problems.js for coding problem tracking
  • interviews.js for interview management
  • analytics.js for dashboard-level insights
  • companies.js for company data and experiences
  • topics.js, resources.js, and mcq.js for study support
  • notifications.js for reminder and notification workflows

Frontend Pages

The frontend UI is primarily implemented in frontend/src/pages.

Key pages include:

  • Dashboard
  • Goals
  • Problems
  • Interviews
  • Resources
  • Topics
  • MCQ Practice
  • Resume Builder / Analyzer
  • Login / Signup / Password Reset
  • Home landing page

Local Development Setup

Prerequisites

  • Node.js 18+ recommended
  • npm
  • MongoDB running locally or a valid remote MongoDB URI

1. Clone the repository

git clone <your-repository-url>
cd pp

2. Install backend dependencies

cd backend
npm install

3. Install frontend dependencies

cd ../frontend
npm install

4. Configure environment variables

Create backend/.env and add values like these:

PORT=5000
MONGODB_URI=mongodb://127.0.0.1:27017/preptrack
JWT_SECRET=your_jwt_secret_key_here
JWT_EXPIRE=7d
NODE_ENV=development

EMAIL_HOST=smtp.gmail.com
EMAIL_PORT=587
EMAIL_USER=your_email@gmail.com
EMAIL_PASS=your_app_password

FRONTEND_URL=http://localhost:3000
GOOGLE_CLIENT_ID=your_google_client_id

YOUTUBE_API_KEY=your_youtube_api_key
OLLAMA_BASE_URL=http://localhost:11434
OLLAMA_MODEL=llama3.2

5. Start the backend

cd backend
npm run dev

Backend runs on http://localhost:5000.

6. Start the frontend

cd frontend
npm start

Frontend runs on http://localhost:3000.

Available Scripts

Backend

npm run dev
npm start
npm test

Frontend

npm start
npm run build
npm test

API Overview

Auth

  • POST /api/auth/signup
  • POST /api/auth/login
  • POST /api/auth/google
  • GET /api/auth/me
  • PUT /api/auth/profile
  • POST /api/auth/forgot-password
  • PUT /api/auth/reset-password

Resume

  • POST /api/resume/upload
  • GET /api/resume/analysis
  • GET /api/resume
  • POST /api/resume
  • DELETE /api/resume

Core Product Routes

  • /api/goals
  • /api/problems
  • /api/interviews
  • /api/analytics
  • /api/companies
  • /api/topics
  • /api/resources
  • /api/mcq
  • /api/notifications

Data Models

Primary MongoDB models are in backend/models.

  • User
  • Goal
  • Problem
  • Interview
  • Resume
  • Notification
  • Company
  • Topic
  • Resource
  • MCQ

Development Notes

  • The frontend uses Axios to call the backend on port 5000 by default.
  • MongoDB must be available for most authenticated product flows.
  • Google sign-in requires the frontend origin to be allowed in Google Cloud OAuth settings.
  • Resume extraction quality depends on how cleanly text can be parsed from the uploaded file.
  • If you change parsing logic, re-upload the resume so newly parsed data is stored again.

Deployment Notes

Backend

  • configure all required environment variables
  • use a production MongoDB instance
  • set NODE_ENV=production
  • serve behind a reverse proxy if needed

Frontend

  • run npm run build
  • deploy the static build to your hosting provider
  • make sure API requests point to the deployed backend

Troubleshooting

Login issues

  • verify the backend is running
  • verify MongoDB is connected
  • restart the backend after auth-related code changes
  • confirm the account email exists exactly as expected

Resume analyzer issues

  • re-upload the resume after parser changes
  • use a text-extractable PDF/DOC/DOCX file
  • check the backend logs for parsing errors

Google sign-in issues

  • verify GOOGLE_CLIENT_ID
  • add your frontend origin to the allowed OAuth origins

Frontend-to-backend connection issues

  • confirm backend is running on port 5000
  • confirm FRONTEND_URL matches the frontend origin
  • check browser console and backend terminal logs together

Git and Repository Notes

The repo includes a root .gitignore that ignores node_modules, including backend and frontend dependency folders, so the project is ready to push cleanly to GitHub.

License

MIT

Final Note

Prepify is already a strong full-stack student product. With continued work on polish, parser quality, analytics depth, and deployment readiness, it can become an excellent portfolio project and a genuinely useful preparation platform.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages