Campus Placement Management System
Placify is a comprehensive campus placement management system designed to help students prepare for job interviews through shared experiences. By creating a community-driven knowledge base of real interview experiences, Placify empowers students with insights into company recruitment processes, technical questions, and valuable tips.
- User Authentication: Secure sign-up and login system
- Experience Sharing: Submit detailed interview experiences with company information
- Experience Browsing: View and search interview experiences shared by other students
- File Uploads: Attach supporting documents to interview experiences
- Dashboard Analytics: Visualize placement statistics and trends
- AWS Amplify: Frontend hosting and backend orchestration
- Amazon Cognito: User authentication and management
- Amazon S3: File storage for supporting documents
- Amazon EC2: Compute resources for backend server
- Amazon RDS: Managed MySQL database for structured data
graph TD
A[React Frontend] --> B[Express Backend]
B --> C[MySQL Database - RDS]
A --> D[AWS Cognito - Auth]
A --> E[AWS S3 - Storage]
F[User] --> A
- React 19 with Vite for fast development
- Tailwind CSS for responsive UI design
- Recharts for data visualization
- React Router for navigation
- AWS Amplify UI for authentication components
- Express.js server with REST API endpoints
- MySQL database for storing interview experiences
- CORS enabled for cross-origin requests
- Environment-based configuration
- Node.js (v18 or higher)
- npm (v9 or higher)
- AWS Account with appropriate permissions
-
Clone the repository
git clone https://github.com/gallant-giri/placify.git cd placify -
Install frontend dependencies
npm install
-
Install backend dependencies
cd backend npm install cd ..
-
Install Amplify CLI
npm install -g @aws-amplify/cli
-
Configure AWS credentials
amplify configure
-
Initialize Amplify project
amplify init
-
Add authentication
amplify add auth
-
Add storage
amplify add storage
-
Deploy AWS resources
amplify push
-
Create RDS MySQL instance
- Navigate to AWS RDS console
- Create a MySQL database instance
- Configure security groups to allow inbound connections on port 3306
-
Create database schema
CREATE DATABASE IF NOT EXISTS placify; USE placify; CREATE TABLE experiences ( id INT AUTO_INCREMENT PRIMARY KEY, user_id VARCHAR(255), company VARCHAR(255), role VARCHAR(255), description TEXT, file_key VARCHAR(512), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
-
Frontend
.envfileVITE_API_BASE_URL=http://your-ec2-instance-url:4000
-
Backend
.envfileDB_HOST=your-rds-endpoint.amazonaws.com DB_USER=your-db-username DB_PASSWORD=your-db-password DB_NAME=placify PORT=4000
-
Start the backend server
cd backend npm start # or for development npm run dev
-
Start the frontend application
npm run dev
-
Build for production
npm run build
The dashboard provides valuable insights into campus placement trends:
- Monthly placement statistics
- Industry-wise placement distribution
- Weekly interview trends
- Skill demand analysis
- User authentication via Amazon Cognito
- Secure file storage in private S3 buckets
- HTTPS encryption for all communications
- CORS policies to prevent unauthorized access
| Category | Technology |
|---|---|
| Frontend | React, Vite, Tailwind CSS, Recharts |
| Backend | Express.js, Node.js |
| Database | MySQL (RDS) |
| Authentication | AWS Cognito |
| Storage | AWS S3 |
| Hosting | AWS Amplify |
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a pull request
For support, email [your-email] or create an issue in the repository.
This project is licensed under the MIT License - see the LICENSE file for details.
Made with β€οΈ for students preparing for campus placements