Skip to content

Repository files navigation

πŸŽ“ Learnify β€” HR Assessment & Learning Platform

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.


πŸš€ Live Demo

Coming soon (Deployment in progress)

Demo Credentials:

Role How to Access
Student Register on the platform
Admin Contact the project owner for admin credentials

πŸ“Έ Screenshots

Landing Page

Landing Page

Student Dashboard

Student Dashboard

Admin Panel

Admin Panel

Assessment/Quiz

Assessment

HR Practice

HR Practice


✨ Features

πŸ‘¨β€πŸŽ“ Candidate Side

  • 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

πŸ‘¨β€πŸ’Ό HR/Admin Side

  • 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

πŸ› οΈ Tech Stack

Frontend

  • 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

Backend

  • Node.js β€” runtime environment
  • Express.js β€” REST API framework
  • bcryptjs β€” password hashing
  • dotenv β€” environment variable management
  • CORS β€” cross-origin resource sharing

Database

  • PostgreSQL β€” relational database
  • pg (node-postgres) β€” database client

πŸ“ Project Structure

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

πŸ—„οΈ Database Schema

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

βš™οΈ Local Setup

Prerequisites

  • Node.js v18+
  • PostgreSQL v14+
  • npm

1. Clone the repository

git clone https://github.com/Nandanisisodia/learnify-website.git
cd learnify-website

2. Frontend setup

npm install

3. Backend setup

cd backend
npm install

4. Database setup

Create a PostgreSQL database:

CREATE DATABASE learnify;

5. Environment variables

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 .env file β€” it's already in .gitignore

6. Create admin account

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}');

7. Run the application

# Terminal 1 - Backend
cd backend
node server.js

# Terminal 2 - Frontend
cd ..
npm start

Open http://localhost:3000


πŸ”‘ Key Technical Decisions

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

🀝 Contributing

This is a portfolio project. Feel free to fork and build upon it!


πŸ“§ Contact

Nandani Sisodia
πŸ“§ nandanisisodia525@gmail.com
πŸ”— LinkedIn
πŸ’» GitHub


πŸ“„ License

MIT License β€” feel free to use this project for learning purposes.


Built with ❀️ as a full-stack portfolio project

About

Full-stack HR Assessment Platform built with React.js, Node.js, Express, and PostgreSQL

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Packages

Contributors

Languages