A full-stack web platform enabling candidates to practice HR interview questions, attempt assessments, and review performance scores β while giving HR teams real-time visibility into candidate progress.
Coming soon (Deployment in progress)
Demo Credentials:
| Role | How to Access |
|---|---|
| Student | Register on the platform |
| Admin | Contact the project owner for admin credentials |
- Secure Registration & Login β bcrypt password hashing, role-based access
- Student Dashboard β real-time stats (attendance, tasks, reward points), notice board, assignments
- HR Questions Practice β practice common HR interview questions with rule-based AI feedback & scoring
- Assessment/Quiz System β attempt MCQ-based quizzes, get instant scores, view performance history
- Edit Profile β update personal info, LinkedIn/GitHub URLs, domains of interest
- My Projects β submit and track personal projects
- Skill Badges β add and showcase skill achievements
- Notifications β real-time platform notices
- Admin Dashboard β real-time platform overview (students, companies, hires, projects)
- Student Management β approve/reject candidates, track progress
- Company Management β add/approve companies, track hire counts
- Assignment Management β assign tasks to specific students (reflects instantly on student dashboard)
- Assessment Management β create MCQ quizzes with multiple questions and correct answers
- HR Questions Management β add categorized HR questions with keywords for feedback scoring
- Notice Board β post/delete platform-wide announcements
- Project Management β track all student projects with mentor assignment
- Analytics β real data charts (student domain interests, top mentors, company hires)
- Mentor Reviews β add/manage mentor ratings and feedback
- Contact Messages β view and manage messages from contact form
- React.js β component-based UI
- Tailwind CSS β utility-first styling
- Framer Motion β smooth animations
- Axios β HTTP requests
- React Router DOM β client-side routing
- Recharts / Chart.js β data visualization
- Lucide React β icons
- Node.js β runtime environment
- Express.js β REST API framework
- bcryptjs β password hashing
- dotenv β environment variable management
- CORS β cross-origin resource sharing
- PostgreSQL β relational database
- pg (node-postgres) β database client
learnify-website/
βββ backend/
β βββ config/
β β βββ database.js # PostgreSQL connection
β βββ routes/
β β βββ auth.js # Login
β β βββ userProfile.js # Profile CRUD
β β βββ stats.js # Student stats & profile completion
β β βββ notices.js # Notice board
β β βββ assignments.js # Assignments CRUD
β β βββ students.js # Student management
β β βββ companies.js # Company management
β β βββ projects.js # Admin projects
β β βββ mentorReviews.js # Mentor reviews
β β βββ analytics.js # Analytics & dashboard
β β βββ quiz.js # Quiz/Assessment system
β β βββ hrQuestions.js # HR practice questions
β β βββ studentProjects.js # Student project submissions
β β βββ skillBadges.js # Skill badges
β β βββ messages.js # User messages
β β βββ contact.js # Contact form
β βββ .env # Environment variables (not in repo)
β βββ server.js # Express server entry point
β
βββ src/
βββ pages/
β βββ Landing.jsx # Home page
β βββ Login.jsx # Login page
β βββ Register.jsx # Registration page
β βββ Student_Dashboard.jsx # Student dashboard
β βββ AdminPanel.jsx # Admin panel
β βββ ContactPage.jsx # Contact page
βββ components/
β βββ AdminPanelDashboard/ # All admin components
β βββ Student_Dashboard/ # All student components
βββ App.jsx # Routes configuration
| Table | Description |
|---|---|
user_details |
All users (students + admin) with roles |
assignments |
Tasks assigned by admin to students |
notices |
Platform announcements |
quizzes |
Assessment quizzes |
quiz_questions |
MCQ questions per quiz |
quiz_results |
Student quiz scores |
hr_questions |
HR practice questions with keywords |
hr_practice_answers |
Student answers with AI-style feedback |
companies |
Hiring companies |
projects |
Admin-managed projects |
student_projects |
Student-submitted projects |
skill_badges |
Student skill achievements |
mentor_reviews |
Mentor ratings and feedback |
student_stats |
Attendance and progress stats |
messages |
User-to-user messages |
contact_messages |
Contact form submissions |
- Node.js v18+
- PostgreSQL v14+
- npm
git clone https://github.com/Nandanisisodia/learnify-website.git
cd learnify-websitenpm installcd backend
npm installCreate a PostgreSQL database:
CREATE DATABASE learnify;Create backend/.env file with your PostgreSQL credentials:
DB_HOST=localhost
DB_PORT=5432
DB_NAME=learnify
DB_USER=your_db_user
DB_PASSWORD=your_db_password
PORT=5000
β οΈ Never share your actual.envfile β it's already in.gitignore
Run the server once and hit the create-admin endpoint, or directly insert:
-- Use bcrypt hash for password
INSERT INTO user_details (full_name, email, password, contact_number, role, why_hire_me, ai_skill_summary, domains_of_interest)
VALUES ('Admin User', 'admin@learnify.com', '<bcrypt_hash>', '9999999999', 'administrator', 'Admin', 'N/A', '{Administration}');# Terminal 1 - Backend
cd backend
node server.js
# Terminal 2 - Frontend
cd ..
npm start| Decision | Reason |
|---|---|
| PostgreSQL over MongoDB | Relational data (students β assignments β results), native array support for domains_of_interest |
| bcrypt hashing | Plain text passwords never stored in database |
| Role-based routing | Students β /dashboard, Admins β /adminPanel |
| Rule-based HR feedback | Cost-free alternative to AI API; scores based on answer length, keyword matching, STAR method detection |
| localStorage for session | Simple, sufficient for demo; JWT would be used in production |
| Parameterized SQL queries | Prevents SQL injection attacks |
This is a portfolio project. Feel free to fork and build upon it!
Nandani Sisodia
π§ nandanisisodia525@gmail.com
π LinkedIn
π» GitHub
MIT License β feel free to use this project for learning purposes.
Built with β€οΈ as a full-stack portfolio project




