- Overview
- Features
- Tech Stack
- Architecture
- Installation & Setup
- Environment Variables
- API Documentation
- Usage Guide
- Project Structure
- Contributing
- Deployment
- License
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
- 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
- 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
- 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
- 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
- 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
- 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
- ESLint - Code linting
- Nodemon - Development server auto-restart
- Rollup - Module bundler
- Autoprefixer - CSS vendor prefixing
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.
- Node.js (v16 or higher)
- MongoDB (v5.0 or higher)
- npm or yarn package manager
git clone https://github.com/your-username/AMILE.git
cd AMILEcd server
npm installcd ../client
npm install- Install MongoDB locally or use MongoDB Atlas
- Create a database named
amile - Update the connection string in
server/db.js
# Terminal 1 - Start Backend Server
cd server
npm start
# Terminal 2 - Start Frontend Development Server
cd client
npm run dev# Build frontend
cd client
npm run build
# Start backend (serves both API and static files)
cd ../server
npm startPORT=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=developmentVITE_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-idPOST /register- User registrationPOST /login- User loginPOST /forgot-password- Password reset requestPOST /reset-password- Password reset confirmationPOST /verify-account- Account verification
GET /profile- Get user profilePUT /profile- Update user profileDELETE /profile- Delete user account
GET /mentor/mentors- Get available mentorsPOST /mentor/request- Request mentorshipGET /mentor/sessions- Get mentoring sessionsPOST /mentor/feedback- Submit feedback
GET /jobs- Get job listingsGET /internships- Get internship opportunitiesPOST /apply- Apply for job/internshipGET /applications- Get user applications
joinChat- Join chat roomsendMessage- Send messagereceiveMessage- Receive messagementorNotification- Mentor notificationsapplicationUpdate- Application status updates
-
Registration & Profile Setup
- Register with email and create a comprehensive profile
- Specify career interests, skills, and goals
- Upload resume and portfolio
-
Finding Mentors
- Browse available mentors by expertise area
- Send mentorship requests
- Schedule one-on-one sessions
-
Job Search & Applications
- Use filters to find relevant opportunities
- Apply directly through the platform
- Track application status in dashboard
-
Skill Development
- Take recommended courses
- Practice coding in built-in compiler
- Participate in mock interviews
-
Profile Creation
- Set up mentor profile with expertise areas
- Define availability and mentoring preferences
- Upload credentials and portfolio
-
Student Interaction
- Review mentorship requests
- Schedule and conduct sessions
- Provide feedback and guidance
-
Progress Tracking
- Monitor student development
- Set goals and milestones
- Maintain session history
-
Company Registration
- Create company profile
- Add company information and culture
- Verify company credentials
-
Job Posting
- Create detailed job descriptions
- Set requirements and preferences
- Manage application workflow
-
Candidate Management
- Review applications
- Shortlist candidates
- Schedule interviews
cd client
npm run build
# Deploy to Vercel
vercel --prodcd server
# Configure vercel.json for serverless functions
vercel --prodnpm 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- Update CORS origins in server configuration
- Configure production MongoDB connection
- Set up production email service
- Configure CDN for static assets
We welcome contributions to AMILE! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- 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
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
client/vite.config.js- Vite build configurationclient/tailwind.config.js- Tailwind CSS configurationclient/package.json- Frontend dependencies and scriptsserver/package.json- Backend dependencies and scriptsserver/db.js- Database connection configuration
-
MongoDB Connection Error
- Verify MongoDB is running
- Check connection string format
- Ensure network access if using Atlas
-
Socket.io Connection Issues
- Check CORS configuration
- Verify client and server URLs match
- Check firewall settings
-
Build Errors
- Clear node_modules and reinstall
- Check Node.js version compatibility
- Verify all environment variables are set
-
Authentication Issues
- Check JWT secret configuration
- Verify token expiration settings
- Check authentication middleware
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