Skip to content

πŸŽ“ Full-stack campus placement system using React, Express & AWS to help students share and browse real interview experiences.

Notifications You must be signed in to change notification settings

GirishInTech/placify

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Placify πŸŽ“πŸ’Ό

Campus Placement Management System

AWS Amplify React Express MySQL

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.

🌟 Features

Core Functionality

  • 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 Services Integration

  • 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

πŸ—οΈ Architecture

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
Loading

Frontend

  • 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

Backend

  • Express.js server with REST API endpoints
  • MySQL database for storing interview experiences
  • CORS enabled for cross-origin requests
  • Environment-based configuration

πŸš€ Getting Started

Prerequisites

  • Node.js (v18 or higher)
  • npm (v9 or higher)
  • AWS Account with appropriate permissions

Installation

  1. Clone the repository

    git clone https://github.com/gallant-giri/placify.git
    cd placify
  2. Install frontend dependencies

    npm install
  3. Install backend dependencies

    cd backend
    npm install
    cd ..

AWS Setup

  1. Install Amplify CLI

    npm install -g @aws-amplify/cli
  2. Configure AWS credentials

    amplify configure
  3. Initialize Amplify project

    amplify init
  4. Add authentication

    amplify add auth
  5. Add storage

    amplify add storage
  6. Deploy AWS resources

    amplify push

Database Setup

  1. Create RDS MySQL instance

    • Navigate to AWS RDS console
    • Create a MySQL database instance
    • Configure security groups to allow inbound connections on port 3306
  2. 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
    );

Environment Configuration

  1. Frontend .env file

    VITE_API_BASE_URL=http://your-ec2-instance-url:4000
  2. Backend .env file

    DB_HOST=your-rds-endpoint.amazonaws.com
    DB_USER=your-db-username
    DB_PASSWORD=your-db-password
    DB_NAME=placify
    PORT=4000

Running the Application

  1. Start the backend server

    cd backend
    npm start
    # or for development
    npm run dev
  2. Start the frontend application

    npm run dev
  3. Build for production

    npm run build

πŸ“Š Dashboard Overview

The dashboard provides valuable insights into campus placement trends:

  • Monthly placement statistics
  • Industry-wise placement distribution
  • Weekly interview trends
  • Skill demand analysis

πŸ” Security

  • User authentication via Amazon Cognito
  • Secure file storage in private S3 buckets
  • HTTPS encryption for all communications
  • CORS policies to prevent unauthorized access

πŸ› οΈ Technologies Used

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

πŸ“š Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a pull request

πŸ“ž Support

For support, email [your-email] or create an issue in the repository.

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


Made with ❀️ for students preparing for campus placements

About

πŸŽ“ Full-stack campus placement system using React, Express & AWS to help students share and browse real interview experiences.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published