A robust Job Portal Application that streamlines job searching, application management, and community interactions for students, alumni, and CCPS professionals.Also Manages the HR Contacts,Logsand their responses(Upcomming).
- Main Repository: OpenLake
- This Project Repository: Centre-for-Career-Planning-and-Services-Portal
- About the Project
- Tech Stack
- Architecture
- Features
- Project Structure
- Getting Started
- Quick Start Guide
- Environment Variables Example
- Basic API Overview
- Common Issues & Troubleshooting
- Contribution Workflow
- Maintainers
- Contributing
- Contact
The Job Portal Application is designed to simplify career development and job management for students, alumni, and CCPS professionals.
- Job Search Complexity: Advanced filters and personalized recommendations.
- Application Tracking: Monitor application status and updates.
- Community Engagement: Networking and alumni interactions.
- Job Management: Tools for job postings and placement analytics.
- User Authentication: Secure login and registration.
Target Audience
- Students (internships, jobs)
- CCPS Professionals (managing placements and analytics)
- Alumni (career guidance, referrals)
- Frontend: React.js, Axios, React Hot Toast
- Styling: Tailwind CSS
- Backend: Node.js, Express.js, JWT Authentication
- Database: MongoDB
- Version Control: Git and GitHub
- Components: Reusable React components (auth, job management, community, analytics).
- Pages: Job listings, application status, analytics, community.
- Styles: Responsive design using CSS/styled-components.
- Utils: API helpers and constants.
- Services: Business logic for jobs, applications, referrals, community, analytics.
- Models: Schemas for users, jobs, applications, referrals, community data.
- Controllers: API request handlers.
- Routes: Endpoints for jobs, applications, users, community, analytics.
- Utils: Database connection, middleware, logging.
- Config: Environment variables and secrets.
- Server: Initialization and setup.
- Job Feed: Personalized recommendations, search, and filters.
- Job Posting Management: Create, edit, delete jobs with expiry control.
- Application Tracking: Submit, track, and update applications.
- Community Interaction: Alumni connections, discussions, and referrals.
- Profile Management: Edit personal info and preferences.
- Analytics & Reporting: Job performance metrics and application trends.
Centre-for-Career-Planning-and-Services-Portal/
│
├── backend/ # Node.js + Express backend
│ ├── assets/ # Static files or uploads
│ ├── config/ # Database & app configuration
│ ├── controllers/ # Functions handling API requests/responses
│ ├── middleware/ # Middleware
│ ├── models/ # Mongoose schemas & data models
│ ├── routes/ # API routes mapping endpoints to controllers
│ ├── utils/ # Utility/helper functions
│ ├── .env # Environment variables
│ ├── .env.example # Example env file for setup
│ ├── .gitignore # Git ignore rules
│ ├── readme.md # Backend-specific documentation
│ └── server.js # Entry point for Express server
│
├── frontend/ # React + Vite frontend
│ ├── public/ # Static assets served directly
│ └── src/ # React source code
│ ├── api/ # API call functions
│ ├── assets/ # Images, icons, fonts
│ ├── components/ # Reusable UI components
│ ├── context/ # React Context
│ ├── pages/ # Page-level components
│ ├── services/ # Service functions
│ ├── styles/ # Global styles
│ ├── utils/ # Utility/helper functions for frontend
│ ├── App.jsx # Root React component
│ ├── index.css # Global CSS entry
│ └── main.jsx # React entry file
│
├── .env # Environment variables
├── .env.example # Example environment file
├── .gitignore # Ignore build artifacts, node_modules, env files
├── eslint.config.js # ESLint configuration
├── index.html # Vite main HTML template
├── package.json # Root dependencies & scripts
├── package-lock.json # Lockfile for npm dependencies
├── postcss.config.js # PostCSS config
├── style.css # Global stylesheet
├── tailwind.config.js # Tailwind CSS configuration
├── vite.config.js # Vite bundler config
└── README.md # Main project documentation
- Node.js
- npm
- MongoDB Atlas
- React.js
-
Clone the repository:
git clone https://github.com/OpenLake/Centre-for-Career-Planning-and-Services-Portal cd Centre-for-Career-Planning-and-Services-Portal\ -
Set up the backend:
-
Change to the backend directory:
cd backend -
Install backend dependencies:
npm install
-
Set up environment variables:
- Create a
.envfile in thebackenddirectory. - Add the necessary environment variables as specified in the
.env.examplefile.
- Create a
-
Start the backend server:
node server.js
-
-
Set up the frontend:
- Open a new terminal and change to the frontend directory:
cd frontend - Install frontend dependencies:
npm install
- Start the frontend development server:
npm run dev
- Open a new terminal and change to the frontend directory:
-
Open the application in your browser:
- Navigate to
http://localhost:5173to view the frontend application. - The backend server should be running on
http://localhost:5000(or the port specified in your.envfile).
- Navigate to
For quick local setup:
cd backend
npm install
node server.jscd frontend
npm install
npm run devMake sure backend is running before starting frontend.
Create a .env file inside the backend directory with the following format:
PORT=5000
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_secret_keyRefer to .env.example file for required variables.
Some common API route categories:
/api/users→ Authentication & user management/api/jobs→ Job postings and job feed/api/applications→ Application submission and tracking/api/community→ Alumni interactions & referrals/api/analytics→ Placement and job metrics
(Refer backend routes folder for full API structure)
- Ensure MongoDB Atlas connection string is correct
- Backend must be running before frontend
- Check API base URL configuration in frontend services
- Make sure required environment variables are set
To contribute:
- Fork the repository
- Clone your fork locally
- Create a new feature branch
- Make your changes
- Commit with clear messages
- Push to your fork
- Open a Pull Request
Please describe your changes clearly in the PR.
This project is maintained by:
We welcome contributions! Feel free to open an issue or submit a pull request. Before contributing, please make sure to:
- Fork the repository.
- Create a new branch.
- Submit a pull request with your changes.
If you have any questions or feedback, feel free to reach out to the maintainers.