Skip to content

Akshay10258/DBMS_Mini_Project_Placement_Data_Management

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Placement Data Management System

A comprehensive full-stack placement management system built with React, Node.js, Express, and MySQL for managing college placement processes including student applications, company drives, assessments, interviews, and job offers.

🎯 Features

Admin Dashboard

  • Company Management: Add new companies and manage recruitment drives
  • Student Shortlisting: Automated shortlisting based on CGPA and assessment scores
  • Offer Creation: Create job offers for companies
  • Application Tracking: Monitor and update application statuses
  • Analytics: View offer counts per company and student performance metrics
  • Company Drive Management: Close drives and auto-cleanup related data

Student Dashboard

  • Profile Management: Register and view student information
  • Company Browsing: View available companies and their details
  • Application Submission: Apply to companies with one click
  • Application Tracking: Monitor application status in real-time
  • Offers Dashboard: View received job offers

πŸ› οΈ Tech Stack

Frontend:

  • React 18 with Vite
  • Tailwind CSS for styling
  • Axios for API communication

Backend:

  • Node.js with Express.js
  • MySQL2 for database connectivity
  • CORS enabled for cross-origin requests

Database:

  • MySQL with stored procedures, functions, and triggers
  • Referential integrity with CASCADE operations

πŸ“ Project Structure

placement-system/
β”œβ”€β”€ backend/              # Express.js API server
β”‚   β”œβ”€β”€ config/          # Database configuration
β”‚   β”œβ”€β”€ controllers/     # Business logic
β”‚   β”œβ”€β”€ routes/          # API endpoints
β”‚   └── index.js         # Entry point
β”œβ”€β”€ frontend/            # React application
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/  # Reusable UI components
β”‚   β”‚   β”œβ”€β”€ pages/       # Dashboard pages
β”‚   β”‚   └── api/         # API client
β”‚   └── public/
└── dbSQL/               # Database schema and scripts
    β”œβ”€β”€ DBMS-MINI_PROJECT.sql      # Schema and sample data
    β”œβ”€β”€ Mini_proj_Functions.sql    # SQL functions
    β”œβ”€β”€ Mini_proj_Procedures.sql   # Stored procedures
    └── Mini_proj_Triggers.sql     # Database triggers

πŸš€ Getting Started

Prerequisites

  • Node.js (v14 or higher)
  • MySQL Server (v8.0 or higher)
  • npm or yarn package manager

Database Setup

  1. Create the database and import schema:
mysql -u root -p < dbSQL/DBMS-MINI_PROJECT.sql
  1. Import functions, procedures, and triggers:
mysql -u root -p placement < dbSQL/Mini_proj_Functions.sql
mysql -u root -p placement < dbSQL/Mini_proj_Procedures.sql
mysql -u root -p placement < dbSQL/Mini_proj_Triggers.sql

Backend Setup

  1. Navigate to backend directory:
cd backend
  1. Install dependencies:
npm install
  1. Configure environment variables:

Create a .env file in the backend directory:

DB_HOST=localhost
DB_USER=root
DB_PASSWORD=your_mysql_password
DB_NAME=placement
PORT=3000
  1. Start the backend server:
node index.js

The server will run on http://localhost:3000

Frontend Setup

  1. Navigate to frontend directory:
cd frontend
  1. Install dependencies:
npm install
  1. Start the development server:
npm run dev

The application will run on http://localhost:5173

πŸ“Š Database Schema

Core Tables

  • Student: Student profiles with CGPA and skills
  • Company: Company information and vacancy details
  • Placement_Cell: Placement coordinators and contacts
  • Application: Student applications to companies
  • Online_Assessment: Assessment scores and platforms
  • Interview: Interview records with rounds and results
  • Offer: Job offers with CTC and joining details

Key Features

  • Stored Procedures:

    • ShortlistStudents: Automated shortlisting by score/CGPA
    • GetStudentOffers: Retrieve all offers for a student
    • UpdateApplicationStatus: Safe status updates
  • Functions:

    • GetAvgScore: Calculate student's average assessment score
    • CountCompanyOffers: Count offers per company
  • Triggers:

    • Auto-cleanup when company drives are closed
    • Data integrity enforcement

πŸ”Œ API Endpoints

Students

  • GET /api/students/:id - Get student details
  • POST /api/students - Create new student
  • GET /api/students/:id/avgscore - Get average score

Companies

  • GET /api/companies - List all companies
  • POST /api/companies - Add new company
  • PUT /api/companies/:id/status - Update company status

Applications

  • GET /api/applications - Get all applications (admin)
  • GET /api/applications/student/:id - Get student applications
  • POST /api/applications - Submit application
  • PUT /api/applications/:id/status - Update status
  • POST /api/applications/shortlist - Run shortlisting

Offers

  • GET /api/offers - Get all offers
  • POST /api/offers - Create new offer
  • GET /api/offers/student/:studId - Get student offers
  • GET /api/offers/company/:id/count - Count company offers

🎨 User Interface

Admin View

  • Dashboard with comprehensive controls
  • Company and offer management forms
  • Application status tracking table
  • Analytics and reporting sections

Student View

  • Clean, card-based company browsing
  • Application status indicators
  • Received offers display
  • Profile information section

πŸ”’ Security Features

  • Input validation on frontend and backend
  • SQL injection prevention through parameterized queries
  • Error handling with meaningful messages
  • CORS configuration for controlled access

πŸ“ Sample Data

The database comes pre-populated with:

  • 9 sample students from various branches
  • 8 companies (Infosys, TCS, Microsoft, Google, etc.)
  • 5 placement cell coordinators
  • Multiple applications, assessments, and interviews
  • Sample offers with realistic CTCs and locations

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ“„ License

This project is developed as part of a DBMS Mini Project for educational purposes.

πŸ‘₯ Authors

πŸ› Troubleshooting

Backend won't start

  • Check MySQL credentials in .env
  • Ensure MySQL server is running
  • Verify database placement exists

Frontend can't connect to backend

  • Confirm backend is running on port 3000
  • Check CORS settings in backend/index.js
  • Verify API base URL in frontend/src/api/api.js

Database errors

  • Ensure all SQL scripts are executed in order
  • Check foreign key constraints
  • Verify sample data was imported successfully

πŸ“ž Support

For issues or questions, please create an issue in the GitHub repository.


Built with ❀️ for efficient placement management

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages