This project is created for BPIT (Bhagwan Parshuram Institute of Technology) college placement students to streamline and manage placement activities. Currently, students rely on third-party platforms like POD for job-related updates and placement information. This platform aims to provide a more personalized and efficient way for students and companies to engage with the placement process.
The project is built using the MERN stack (MongoDB, Express, React, Node.js) to ensure scalability, flexibility, and a seamless user experience.
graph TD
%% Define styles
classDef adminNode fill:#ff8c00,stroke:#ffb347,stroke-width:3px,color:#1a1a1a,stroke-dasharray:4 2,round
classDef studentNode fill:#00bfff,stroke:#87cefa,stroke-width:3px,color:#1a1a1a,stroke-dasharray:4 2,round
classDef publicNode fill:#32cd32,stroke:#7cfc00,stroke-width:3px,color:#1a1a1a,stroke-dasharray:4 2,round
classDef decisionNode fill:#ff4c4c,stroke:#ff6e6e,stroke-width:3px,color:#1a1a1a
%% Shared Public Access
subgraph Public[" π Public Pages"]
direction TB
P1([Homepage, About,<br> Contact, Privacy Policy<br> Terms & Conditions,<br>FAQ Chatbot]):::publicNode
end
%% TNP Admin Flow
subgraph TNP_Admin["π¨βπΌ TNP Admin Flow"]
direction TB
A1([π TNP Admin Signup / Login]):::adminNode --> B1{π Verify Admin Credentials}:::decisionNode
B1 -->|β
Admin| C1([π Access Admin Page]):::adminNode
B1 -->|β Not Admin| A1
C1 --> D1([π’ Post Job / Internship]):::adminNode
C1 --> E1([ποΈ Delete Job Posts]):::adminNode
A1 --> A2([π’ Access Company & Community Pages]):::studentNode
A2 --> A3([π Fill Job Application Form]):::studentNode
A2 --> A4([π¬ Community Chat]):::studentNode
end
%% Students Flow
subgraph Students["π Students Flow"]
direction TB
S1([π Login / Signup]):::studentNode --> S2([π’ Access Company & Community Pages]):::studentNode
S2 --> S3([π Fill Job Application Form]):::studentNode
S2 --> S4([π¬ Community Chat]):::studentNode
S2 -.-> S5([π« Cannot Access Admin Page]):::studentNode
end
%% Connect Public to both flows
P1 --> A1
P1 --> S1
- π User Authentication & Authorization: Secure login for students, admins, and companies.
- π€ Profiles: Dedicated profiles for students and companies.
- πΌ Job Listings & Applications: Browse and apply for placement opportunities.
- π Admin Dashboard: Manage job postings and placements with ease.
- π Real-Time Notifications: Stay updated with instant alerts.
- π§ Contact Form: Integrated with EmailJS for seamless communication.
- π¨ Attractive UI: Smooth animations using Lottie and Framer Motion.
- π± Responsive Design: Optimized for both mobile and desktop devices.
You can use the following test credentials to explore the Admin Dashboard:
- Username:
admin
- Password:
admin
bpit-careerhub/ βββ π₯οΈ backend/ # Express.js backend β βββ index.js # Entry point β βββ controller/ # Route logic (company, user, message) β βββ model/ # Mongoose schemas β βββ routes/ # API endpoints β βββ middleware/ # Auth middleware β βββ jwt/ # JWT token utils β βββ π» client/ # React frontend β βββ public/ # Static assets β βββ src/ β βββ Component/ # Reusable components β β βββ Charts/ # Placement stats charts β β βββ Header/ # Header, footer, scroll handling β β βββ MainComponent/# Pages (Home, Company, Admin, etc.) β β βββ ProgressBar/ # Scroll progress UI β βββ App.js # Main app component β βββ index.js # React entry point β βββ firebase.js # Firebase config β βββ π README.md βββ π .gitignore
- Node.js and npm (Node Package Manager)
- MongoDB for database management
- React.js for frontend development
To run this project locally, follow the steps below:
-
Clone the repository
git clone <repository-url> cd bpit-placement
-
Install server-side dependencies Navigate to the backend folder and install the dependencies:
cd backend npm install
-
Install client-side dependencies Navigate to the frontend folder and install the dependencies:
cd frontend npm install
-
Set up environment variables Create a
.env
file in the backend directory with the following variables:MONGO_URI=<Your MongoDB URI> JWT_SECRET=<Your JWT Secret> EMAILJS_USER_ID=<Your EmailJS User ID> EMAILJS_TEMPLATE_ID=<Your EmailJS Template ID> EMAILJS_SERVICE_ID=<Your EmailJS Service ID>
-
Run the application
- Start the backend server:
cd backend npm start
- Start the frontend application:
cd frontend npm start
Your application should now be running on http://localhost:3000.
- Start the backend server:
The project is deployed on Render and can be accessed at:
This project was created to improve the placement process for BPIT students and reduce reliance on third-party platforms. The MERN stack was chosen for its scalability and efficiency in building modern web applications. Special thanks to the open-source community for providing the tools and libraries used in this project.
This project is open-source and available under the MIT License. See the LICENSE file for details.
Feel free to fork this project and submit issues or pull requests if you want to contribute.