Placemento is a comprehensive web-based placement management system designed specifically for MCA students at NIT Warangal. Built with the MERN stack, it streamlines placement activities, student data management, and company interactions for the entire batch.
- π Student Dashboard - Comprehensive profile management and placement status tracking
- π’ Company Management - Detailed company profiles and job posting system
- π Analytics & Statistics - Visual insights into placement trends and data
- π₯ User Authentication - Secure JWT-based login with email OTP verification
- π§ Email Notifications - Automated updates for placement activities
- π± Responsive Design - Optimized for desktop and mobile devices
- π Advanced Filtering - Powerful search and filter capabilities using AG Grid
- πΌ Experience Sharing - Students can share interview experiences with ratings and tips
- π¨βπ» Team Information - Comprehensive developer team profiles and project details
- π Role-based Access - Admin and student roles with appropriate permissions
Placemento/
βββ π client/ # React frontend application
β βββ π public/ # Static assets
β βββ π src/
β βββ π api/ # API service layer
β βββ π components/ # Reusable React components
β βββ π pages/ # Main application pages
β βββ π utils/ # Utility functions
β βββ π App.jsx # Main App component
βββ π server/ # Node.js backend application
β βββ π controllers/ # Route controllers
β βββ π middleware/ # Custom middleware
β βββ π models/ # MongoDB data models
β βββ π routes/ # API route definitions
β βββ π utils/ # Backend utilities
β βββ π seedDatabase.js # Sample data seeder
β βββ π testStats.js # API testing script
β βββ π index.js # Server entry point
βββ π package.json # Root package configuration
βββ π DEVELOPMENT.md # Development guide
βββ π setup.bat # Windows setup script
βββ π setup.sh # Unix setup script
βββ π README.md # Project documentation
Ensure you have the following installed:
- Node.js v20.0.0 or higher
- npm v10.0.0 or higher
- MongoDB (local installation or MongoDB Atlas account)
- Git for version control
-
Clone the repository
git clone https://github.com/MCA-NITW/placemento.git cd placemento
-
Install dependencies
npm run install-deps
This command will install dependencies for both frontend and backend.
-
Environment Setup
Create
.env
files in the server directory with the following variables:# server/.env PORT=5000 MONGODB_URI=your_mongodb_connection_string JWT_SECRET=your_jwt_secret_key EMAIL_HOST=your_email_host EMAIL_PORT=587 EMAIL_USER=your_email_username EMAIL_PASS=your_email_password
-
Start the development servers
npm run start
This will start both the backend server (port 5000) and frontend development server (port 3000).
-
Access the application
Open your browser and navigate to
http://localhost:3000
Command | Description |
---|---|
npm run start |
Starts both frontend and backend concurrently |
npm run frontend-start |
Starts only the React development server |
npm run backend-start |
Starts only the Node.js server |
npm run install-deps |
Installs dependencies for both frontend and backend |
npm run frontend-install |
Installs dependencies for frontend only |
npm run backend-install |
Installs dependencies for backend only |
npm run frontend-build |
Creates production build of React app |
npm run format |
Formats code using Prettier |
npm run dev |
Development mode with hot reload |
Modern landing page with live statistics and beautiful animations.
Interactive charts and visualizations using AG Charts for comprehensive placement analytics.
Advanced AG Grid tables with filtering, sorting, and search capabilities for managing student data.
Comprehensive company management system with detailed profiles and job postings.
Platform for students to share interview experiences with ratings and helpful tips.
- Enhanced Statistics Page: Beautiful charts and visual representations using AG Charts
- Full Page Optimization: Improved vertical layout and space utilization
- Modern UI Components: Glassmorphism design with smooth animations
- Responsive Design: Perfect display across all device sizes
- Performance Optimization: Faster loading and better user experience
- Complete placement management system
- Interactive data visualization
- Advanced filtering and search
- Email notification system
- Role-based access control
We welcome contributions from the community! Here's how you can get involved:
-
Create a feature branch from
main
:git checkout -b feature/your-feature-name
-
Make your changes following our coding standards
-
Test thoroughly to ensure everything works as expected
-
Submit a pull request with a clear description of your changes
-
Fork the repository to your GitHub account
-
Clone your fork and create a feature branch:
git clone https://github.com/your-username/placemento.git cd placemento git checkout -b feature/your-feature-name
-
Make your changes and test them
-
Submit a pull request from your fork to our main repository
- Use Prettier for code formatting:
npm run format
- Follow React best practices for frontend development
- Write clear commit messages
- Add comments for complex logic
- Ensure responsive design for all UI components
- React 18.2 - Modern UI library with hooks
- React Router - Client-side routing
- AG Grid - Advanced data grid with filtering and sorting
- React Toastify - User-friendly notifications
- Axios - HTTP client for API calls
- React Icons - Comprehensive icon library
- Node.js - JavaScript runtime environment
- Express.js - Web application framework
- MongoDB with Mongoose - Database and ODM
- JWT - Authentication and authorization
- Bcrypt - Password hashing
- Nodemailer - Email service integration
- Winston - Logging framework
- Express Rate Limit - API rate limiting
- Nodemon - Development server auto-restart
- Concurrently - Run multiple commands simultaneously
- Prettier - Code formatting
- React Scripts - Build toolchain for React
This project is licensed under the GPL-3.0 License. See the LICENSE file for details.
- Project Repository: MCA-NITW/placemento
- Issues & Bug Reports: GitHub Issues
- Institution: NIT Warangal - MCA Department
- Sagar Gupta - Lead Developer
- Sachin Gupta - Full Stack Developer
- NIT Warangal College - For providing the academic environment and support
- MCA Department - For guidance and project requirements
- Open Source Community - For the amazing tools and libraries that made this project possible