Skip to content

ramtejvigna/AMILE

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ AMILE - Advanced Mentorship, Internship, Learning & Employment Platform

React Node.js MongoDB Socket.io Vite TailwindCSS

πŸ“‹ Table of Contents

  1. Overview
  2. Features
  3. Tech Stack
  4. Architecture
  5. Installation & Setup
  6. Environment Variables
  7. API Documentation
  8. Usage Guide
  9. Project Structure
  10. Contributing
  11. Deployment
  12. License

🎯 Overview

AMILE is a comprehensive career development platform that bridges the gap between students, mentors, and employers. It provides an all-in-one solution for career guidance, skill development, internship opportunities, job placements, and professional networking.

The platform serves three main user types:

  • Students: Seeking career guidance, internships, and job opportunities
  • Mentors: Providing guidance and sharing expertise with students
  • Companies: Looking to hire talent and offer internship opportunities

✨ Features

πŸŽ“ For Students

  • Personalized Dashboard - Track progress, applications, and recommendations
  • One-to-One Mentorship - Connect with industry experts for personalized guidance
  • AI-Driven Mock Interviews - Practice with AI-powered interview simulations
  • Resume Builder - Create professional resumes with templates
  • Course Recommendations - AI-powered course suggestions based on career goals
  • Job & Internship Search - Browse opportunities from top companies
  • Real-time Chat - Communicate with mentors and recruiters
  • Progress Tracking - Monitor skill development and career milestones
  • Referral System - Get referred by mentors and professionals
  • Code Compiler - Practice coding with built-in compiler
  • Government Jobs - Access government job opportunities

πŸ‘¨β€πŸ« For Mentors

  • Mentor Dashboard - Manage mentoring sessions and student interactions
  • Student Matching - Get matched with students based on expertise
  • Chat System - Real-time communication with mentees
  • Progress Tracking - Monitor student development
  • Session Management - Schedule and manage mentoring sessions

🏒 For Companies

  • Company Dashboard - Manage job postings and applications
  • Candidate Screening - Review and shortlist candidates
  • Application Management - Track and manage job applications
  • Real-time Notifications - Get notified about new applications

πŸ”§ Technical Features

  • Real-time Communication - Socket.io powered chat system
  • Responsive Design - Mobile-first approach with Tailwind CSS
  • Authentication & Authorization - JWT-based secure authentication
  • File Upload - GridFS for handling resumes and documents
  • Email Services - Automated email notifications
  • Data Visualization - Charts and analytics dashboards
  • Modern UI Components - Material-UI and custom components

πŸ›  Tech Stack

Frontend

  • React 18.3.1 - Modern React with hooks and context
  • Vite - Fast build tool and development server
  • Tailwind CSS - Utility-first CSS framework
  • Material-UI - React component library
  • Redux Toolkit - State management
  • React Router DOM - Client-side routing
  • Socket.io Client - Real-time communication
  • Framer Motion - Animation library
  • Chart.js & Recharts - Data visualization
  • React Hook Form - Form management
  • CodeMirror - Code editor component
  • PDF-lib - PDF generation and manipulation

Backend

  • Node.js - JavaScript runtime
  • Express.js - Web application framework
  • MongoDB & Mongoose - Database and ODM
  • Socket.io - Real-time bidirectional communication
  • JWT - JSON Web Tokens for authentication
  • bcrypt - Password hashing
  • Multer & GridFS - File upload and storage
  • Nodemailer - Email service
  • CORS - Cross-origin resource sharing
  • dotenv - Environment variable management

Development Tools

  • ESLint - Code linting
  • Nodemon - Development server auto-restart
  • Rollup - Module bundler
  • Autoprefixer - CSS vendor prefixing

πŸ— Architecture

AMILE/
β”œβ”€β”€ client/                 # Frontend React Application
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/     # Reusable UI components
β”‚   β”‚   β”œβ”€β”€ mentor-components/  # Mentor-specific components
β”‚   β”‚   β”œβ”€β”€ context/        # React context providers
β”‚   β”‚   β”œβ”€β”€ hooks/          # Custom React hooks
β”‚   β”‚   β”œβ”€β”€ services/       # API service calls
β”‚   β”‚   └── assets/         # Static assets
β”‚   └── public/             # Public static files
β”œβ”€β”€ server/                 # Backend Node.js Application
β”‚   β”œβ”€β”€ controllers/        # Business logic controllers
β”‚   β”œβ”€β”€ models/            # MongoDB data models
β”‚   β”œβ”€β”€ routes/            # API route definitions
β”‚   β”œβ”€β”€ middleware/        # Custom middleware
β”‚   β”œβ”€β”€ services/          # Business logic services
β”‚   └── sockets/           # Socket.io event handlers
└── README.md

The application follows a microservices-inspired architecture with clear separation between frontend and backend, real-time communication via WebSockets, and modular component design.

πŸš€ Installation & Setup

Prerequisites

  • Node.js (v16 or higher)
  • MongoDB (v5.0 or higher)
  • npm or yarn package manager

1. Clone the Repository

git clone https://github.com/your-username/AMILE.git
cd AMILE

2. Backend Setup

cd server
npm install

3. Frontend Setup

cd ../client
npm install

4. MongoDB Setup

  • Install MongoDB locally or use MongoDB Atlas
  • Create a database named amile
  • Update the connection string in server/db.js

5. Start the Application

Development Mode

# Terminal 1 - Start Backend Server
cd server
npm start

# Terminal 2 - Start Frontend Development Server
cd client
npm run dev

Production Mode

# Build frontend
cd client
npm run build

# Start backend (serves both API and static files)
cd ../server
npm start

πŸ” Environment Variables

Server (.env)

PORT=3000
MONGODB_URI=mongodb+srv://your-connection-string
JWT_SECRET=your-jwt-secret-key
JWT_EXPIRES_IN=7d
EMAIL_HOST=smtp.gmail.com
EMAIL_PORT=587
EMAIL_USER=your-email@gmail.com
EMAIL_PASS=your-app-password
NODE_ENV=development

Client (.env)

VITE_API_URL=http://localhost:3000
VITE_SOCKET_URL=http://localhost:3000
VITE_FIREBASE_API_KEY=your-firebase-api-key
VITE_FIREBASE_AUTH_DOMAIN=your-project.firebaseapp.com
VITE_FIREBASE_PROJECT_ID=your-project-id

πŸ“š API Documentation

Authentication Endpoints

  • POST /register - User registration
  • POST /login - User login
  • POST /forgot-password - Password reset request
  • POST /reset-password - Password reset confirmation
  • POST /verify-account - Account verification

User Management

  • GET /profile - Get user profile
  • PUT /profile - Update user profile
  • DELETE /profile - Delete user account

Mentorship

  • GET /mentor/mentors - Get available mentors
  • POST /mentor/request - Request mentorship
  • GET /mentor/sessions - Get mentoring sessions
  • POST /mentor/feedback - Submit feedback

Jobs & Internships

  • GET /jobs - Get job listings
  • GET /internships - Get internship opportunities
  • POST /apply - Apply for job/internship
  • GET /applications - Get user applications

Real-time Events (Socket.io)

  • joinChat - Join chat room
  • sendMessage - Send message
  • receiveMessage - Receive message
  • mentorNotification - Mentor notifications
  • applicationUpdate - Application status updates

πŸ“– Usage Guide

For Students

  1. Registration & Profile Setup

    • Register with email and create a comprehensive profile
    • Specify career interests, skills, and goals
    • Upload resume and portfolio
  2. Finding Mentors

    • Browse available mentors by expertise area
    • Send mentorship requests
    • Schedule one-on-one sessions
  3. Job Search & Applications

    • Use filters to find relevant opportunities
    • Apply directly through the platform
    • Track application status in dashboard
  4. Skill Development

    • Take recommended courses
    • Practice coding in built-in compiler
    • Participate in mock interviews

For Mentors

  1. Profile Creation

    • Set up mentor profile with expertise areas
    • Define availability and mentoring preferences
    • Upload credentials and portfolio
  2. Student Interaction

    • Review mentorship requests
    • Schedule and conduct sessions
    • Provide feedback and guidance
  3. Progress Tracking

    • Monitor student development
    • Set goals and milestones
    • Maintain session history

For Companies

  1. Company Registration

    • Create company profile
    • Add company information and culture
    • Verify company credentials
  2. Job Posting

    • Create detailed job descriptions
    • Set requirements and preferences
    • Manage application workflow
  3. Candidate Management

    • Review applications
    • Shortlist candidates
    • Schedule interviews

🌐 Deployment

Vercel Deployment (Recommended)

Frontend (Client)

cd client
npm run build
# Deploy to Vercel
vercel --prod

Backend (Server)

cd server
# Configure vercel.json for serverless functions
vercel --prod

Manual Deployment

Using PM2 (Production)

npm install -g pm2

# Start backend
cd server
pm2 start server.js --name "amile-backend"

# Build and serve frontend
cd ../client
npm run build
# Serve build files with nginx or serve

Environment Configuration

  • Update CORS origins in server configuration
  • Configure production MongoDB connection
  • Set up production email service
  • Configure CDN for static assets

🀝 Contributing

We welcome contributions to AMILE! Please follow these steps:

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

Development Guidelines

  • Follow existing code style and conventions
  • Write meaningful commit messages
  • Add tests for new features
  • Update documentation as needed
  • Ensure all tests pass before submitting PR

πŸ“ Project Structure

AMILE/
β”œβ”€β”€ client/
β”‚   β”œβ”€β”€ public/
β”‚   β”‚   β”œβ”€β”€ index.html
β”‚   β”‚   └── assets/
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”‚   β”œβ”€β”€ Dashboard/
β”‚   β”‚   β”‚   β”œβ”€β”€ Login/
β”‚   β”‚   β”‚   β”œβ”€β”€ Register/
β”‚   β”‚   β”‚   β”œβ”€β”€ Profile/
β”‚   β”‚   β”‚   β”œβ”€β”€ Jobs/
β”‚   β”‚   β”‚   β”œβ”€β”€ Messages/
β”‚   β”‚   β”‚   β”œβ”€β”€ ResumeBuilder/
β”‚   β”‚   β”‚   β”œβ”€β”€ Mock-Interview/
β”‚   β”‚   β”‚   β”œβ”€β”€ Courses/
β”‚   β”‚   β”‚   └── ...
β”‚   β”‚   β”œβ”€β”€ mentor-components/
β”‚   β”‚   β”œβ”€β”€ context/
β”‚   β”‚   β”œβ”€β”€ hooks/
β”‚   β”‚   β”œβ”€β”€ services/
β”‚   β”‚   β”œβ”€β”€ App.jsx
β”‚   β”‚   └── main.jsx
β”‚   β”œβ”€β”€ package.json
β”‚   β”œβ”€β”€ vite.config.js
β”‚   β”œβ”€β”€ tailwind.config.js
β”‚   └── vercel.json
β”œβ”€β”€ server/
β”‚   β”œβ”€β”€ controllers/
β”‚   β”‚   β”œβ”€β”€ userController.js
β”‚   β”‚   β”œβ”€β”€ mentorController.js
β”‚   β”‚   β”œβ”€β”€ companyController.js
β”‚   β”‚   β”œβ”€β”€ applicationController.js
β”‚   β”‚   └── ...
β”‚   β”œβ”€β”€ models/
β”‚   β”œβ”€β”€ routes/
β”‚   β”‚   β”œβ”€β”€ userRoutes.js
β”‚   β”‚   β”œβ”€β”€ mentorRoutes.js
β”‚   β”‚   β”œβ”€β”€ companyRoutes.js
β”‚   β”‚   └── ...
β”‚   β”œβ”€β”€ middleware/
β”‚   β”œβ”€β”€ services/
β”‚   β”œβ”€β”€ sockets/
β”‚   β”œβ”€β”€ server.js
β”‚   β”œβ”€β”€ db.js
β”‚   β”œβ”€β”€ package.json
β”‚   └── vercel.json
└── README.md

πŸ”§ Configuration Files

Key Configuration Files

  • client/vite.config.js - Vite build configuration
  • client/tailwind.config.js - Tailwind CSS configuration
  • client/package.json - Frontend dependencies and scripts
  • server/package.json - Backend dependencies and scripts
  • server/db.js - Database connection configuration

πŸ› Troubleshooting

Common Issues

  1. MongoDB Connection Error

    • Verify MongoDB is running
    • Check connection string format
    • Ensure network access if using Atlas
  2. Socket.io Connection Issues

    • Check CORS configuration
    • Verify client and server URLs match
    • Check firewall settings
  3. Build Errors

    • Clear node_modules and reinstall
    • Check Node.js version compatibility
    • Verify all environment variables are set
  4. Authentication Issues

    • Check JWT secret configuration
    • Verify token expiration settings
    • Check authentication middleware

πŸ“ž Support

For support and questions:

  • Open an issue on GitHub
  • Contact the development team
  • Check documentation and troubleshooting guide

AMILE - Empowering careers through mentorship, learning, and opportunity. πŸš€

Made with ❀️ by the AMILE Development Team

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • HTML 89.3%
  • JavaScript 10.6%
  • CSS 0.1%