The Placement Portal is a web-based application designed to manage all placement-related activities within a college. It provides functionalities for three types of users: Admin, Placement Officer, and Students. The portal includes features like creating and managing placement drives, adding students, shortlisting candidates, and more. It is built using Node.js and MySQL, following the Model-View (MV) architecture.
- Setup and Installation
- Running the Project
- Project Structure
- Functionality Overview
- Environment Variables
- Database Schema
- Node.js (v14.x or higher)
- MySQL
-
Clone the Repository
git clone https://github.com/your-username/placement-portal.git cd placement-portal -
Install Dependencies
npm install
-
Environment Variables
Create a
.envfile in the root directory and add the following environment variables:MAIL_USER=your_email@example.com MAIL_PASS=your_email_password
-
Database Setup
-
Import the provided SQL dump file (
placement_portal.sql) into your MySQL database to set up the initial schema.mysql -u your_username -p your_database < database_dump.sql -
Manually add an admin user to the
userstable:INSERT INTO users (username, password, role) VALUES ('admin', 'admin_password', 'admin');
Make sure to replace
'admin_password'with a secure password.
-
-
Start the Server
node app.js
-
Access the Application
Open your web browser and go to
http://localhost:3000.
app.js: Main application file.routes/: Contains route definitions for different user roles.controllers/: Contains logic for handling requests.models/: Contains database models and schemas.views/: Contains EJS templates for rendering web pages.public/: Contains static assets like CSS, JS, and images.
- Dashboard: View and manage placement officers.
- Add Placement Officer: Add new placement officers to the system.
- View Placement Officer: View the list of current placement officers.
- Dashboard: Manage placement drives and students.
- Add Students: Add students to the system, either individually or via a file upload.
- Create Drive: Create and manage placement drives with details like company name, eligibility criteria, etc.
- Manage Drives: View and manage existing drives, including shortlisting students and declaring results.
- Program & Stream Planning: Add and manage programs and streams.
- Edit Student Details: Edit details of students.
- Dashboard: View upcoming and applied drives.
- Apply for Drive: Apply for placement drives.
- View Results: View the status of applications and results of rounds.
The project requires the following environment variables:
MAIL_USER: Email address used for sending notifications.MAIL_PASS: Password for the email account.
Create a .env file in the root directory of your project and add these variables.
The database schema includes the following tables:
applications: Stores student applications to drives.drives: Stores information about placement drives.drive_for: Stores information about which program and stream each drive is for.placed: Stores information about students placed in drives.placement_officers: Stores placement officer details.programs: Stores information about different programs (e.g., B.Tech, MCA).rounds: Stores information about each round in a placement drive.selected: Stores information about students selected in each round.streams: Stores information about different streams (e.g., CSE, ECE).students: Stores student details.users: Stores user credentials and roles.
To set up the database, use the provided SQL dump file placement_portal.sql.