A full-stack, enterprise-grade job portal application built with the MERN stack (MongoDB, Express.js, React, Node.js). This comprehensive platform provides a complete solution for job posting, application management, user authentication, and company profiles with both a robust backend API and a modern React frontend.
- β¨ Features
- π οΈ Tech Stack
- π Project Structure
- π Getting Started
- π API Documentation
- π» Frontend Features
- π€ Contributing
- π License
- π₯ Authors
- Secure Authentication: JWT-based authentication with registration, login, and logout
- Role-Based Access Control: User and admin roles with appropriate permissions
- Profile Management: Complete user profiles with personal details, education, experience, and skills
- Resume Upload & Analysis: AI-powered resume parsing and analysis for personalized recommendations
- Application Dashboard: Track job applications with status updates (Applied, Interviewing, Offered, Rejected)
- Job Creation & Management: Full CRUD operations for job postings with detailed attributes
- Advanced Search & Filtering: Search jobs by title, company, location, type, and tags
- Smart Job Recommendations: AI-powered job matching based on user profiles
- Application Tracking: Complete workflow for job applications with status management
- Job Analytics: Statistics and insights for job postings and applications
- Company Profiles: Comprehensive company registration and profile management
- Company Directory: Browse and search companies by name, industry, and size
- Employee Management: Track company employees and job postings
- Company Analytics: Real-time statistics on job postings and applications
- Intelligent Job Search: AI-enhanced job recommendations and contextual search
- Resume Analysis: Automated resume parsing for skill extraction and job matching
- Company Discovery: AI-powered company recommendations based on user preferences
- Smart Application Matching: Intelligent matching between candidates and job requirements
- Dashboard Analytics: Real-time insights on applications, jobs, and user engagement
- Performance Metrics: Track platform usage, success rates, and user behavior
- Admin Panel: Comprehensive admin dashboard for platform management
- Runtime: Node.js (v14+)
- Framework: Express.js
- Database: MongoDB with Mongoose ODM
- Authentication: JSON Web Tokens (JWT) + bcrypt
- Middleware: CORS, cookie-parser, dotenv
- AI Integration: Axios for external AI APIs
- Framework: React 18+ with Hooks
- Build Tool: Vite (ultra-fast development)
- Routing: React Router DOM
- HTTP Client: Axios
- Styling: Modern CSS3 with responsive design
- Development: Hot Module Replacement (HMR)
- Version Control: Git & GitHub
- Package Manager: npm
- Code Organization: Modular architecture with clear separation of concerns
- Environment: Development and production configurations
mern_stack_project/
β
βββ π backend/ # Node.js + Express API
β βββ π models/ # Database schemas
β β βββ user.model.js # User schema with authentication
β β βββ job.model.js # Job posting schema
β β βββ company.model.js # Company profile schema
β β βββ application.model.js # Job application schema
β β
β βββ π conroller/ # Business logic controllers
β β βββ user.controller.js # User management & auth
β β βββ job.controller.js # Job CRUD operations
β β βββ application.controller.js # Application workflow
β β βββ company.controller.js # Company management
β β
β βββ π routes/ # API route definitions
β β βββ user.rout.js # User & auth routes
β β βββ job.rout.js # Job management routes
β β βββ company.rout.js # Company routes
β β βββ application.rout.js # Application routes
β β
β βββ π middleware/ # Custom middleware
β β βββ isAuthenticated.js # JWT authentication middleware
β β
β βββ π utils/ # Utility functions
β β βββ db.js # Database connection
β β
β βββ index.js # Server entry point
β βββ package.json # Backend dependencies
β
βββ π frontend/ # React.js Application
β βββ π public/ # Static assets
β β βββ favicon.svg # App favicon
β β
β βββ π src/ # React source code
β β βββ π components/ # Reusable UI components
β β β βββ Header.jsx # Navigation header
β β β βββ Footer.jsx # App footer
β β β
β β βββ π pages/ # Page components
β β β βββ Home.jsx # Homepage component
β β β
β β βββ π services/ # API integration
β β β βββ api.js # HTTP client & API calls
β β β
β β βββ π utils/ # Helper functions
β β β βββ helpers.js # Utility functions
β β β
β β βββ π hooks/ # Custom React hooks
β β βββ π context/ # React context providers
β β β
β β βββ App.jsx # Main application component
β β βββ App.css # App-specific styles
β β βββ main.jsx # React DOM entry point
β β βββ index.css # Global styles
β β
β βββ index.html # HTML template
β βββ vite.config.js # Vite configuration
β βββ package.json # Frontend dependencies
β βββ README.md # Frontend documentation
β
βββ π assets/ # Project assets
β βββ π logo/ # Logo files
β
βββ .env # Environment variables
βββ README.md # Project documentation
- Node.js (v14 or higher)
- MongoDB (local installation or MongoDB Atlas)
- npm or yarn package manager
- Git for version control
- π₯ Clone the repository:
git clone https://github.com/CosmicRick/mern_stack_project.git cd mern_stack_project
-
π Navigate to backend directory:
cd backend
-
π¦ Install dependencies:
npm install
-
βοΈ Configure environment variables:
Create a
.env
file in thebackend/
directory:PORT=8000 MONGO_URI=your_mongodb_connection_string SECRET_KEY=your_jwt_secret_key NODE_ENV=development # Optional AI Integration AI_JOB_SEARCH_API=your_ai_api_endpoint AI_COMPANY_SEARCH_URL=your_ai_company_search_endpoint AI_API_KEY=your_ai_api_key
-
π Start the backend server:
npm start
Backend will run on http://localhost:8000
-
π Navigate to frontend directory:
cd ../frontend
-
π¦ Install frontend dependencies:
npm install
-
π Start the development server:
npm run dev
Frontend will run on http://localhost:3000
# Start both servers concurrently (from project root)
npm run dev:all # If you have concurrently setup
# Or start them separately:
# Terminal 1 - Backend
cd backend && npm start
# Terminal 2 - Frontend
cd frontend && npm run dev
POST /api/users/register
β Register a new userPOST /api/users/login
β Authenticate and receive JWT tokenPOST /api/users/logout
β End user sessionPUT /api/users/profile/:userId
β Update user profileGET /api/users/profile/:userId
β Fetch user profilePOST /api/users/analyze-resume/:userId
β AI-based resume analysis (generates tags and role suggestions)
POST /api/jobs/create
β Create a job posting (auth required)GET /api/jobs/all
β Retrieve all jobs (with filtering)GET /api/jobs/search
β Search jobs by title or tagsGET /api/jobs/:jobId
β Get job detailsPUT /api/jobs/:jobId
β Update job posting (auth required)DELETE /api/jobs/:jobId
β Delete job posting (auth required)POST /api/jobs/smart-search
β AI-powered job recommendations/search
POST /api/companies
β Register a new companyGET /api/companies
β List all companies (supports industry filter)GET /api/companies/search
β Search companies by namePOST /api/companies/ai-search
β AI-powered company discovery
POST /api/applications/apply/:jobId
β Apply to a job (auth required)GET /api/applications/my-applications
β View userβs job applicationsGET /api/applications/all
β (Admin) View all applicationsPUT /api/applications/status/:applicationId
β (Admin) Update application statusPOST /api/applications/ai-search
β AI-powered job matching
For a complete overview of all API endpoints, consult the controller and model files in the
backend/
directory.
Contributions are highly encouraged! To get involved, please fork this repository and submit a pull request for review.
Development workflow:
- Fork the repository
- Create a feature branch (
git checkout -b feature/YourFeature
) - Commit your changes (
git commit -m 'Add new feature'
) - Push your branch (
git push origin feature/YourFeature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- β Commercial use - Use this project for commercial purposes
- β Modification - Modify and adapt the code
- β Distribution - Distribute original or modified versions
- β Private use - Use for personal/private projects
- β Attribution required - Give credit to original authors
![]() CosmicRick Full-Stack Developer |
![]() Sayandip Naskar Full-Stack Developer |
![]() Sourish Mallick Full-Stack Developer |
We welcome contributions! Check out our Contributing Guidelines above to get started.
- π§ Email: [email protected]
- π Issues: GitHub Issues
- π¬ Discussions: GitHub Discussions
- π± Social: Follow us for updates and announcements
- React Team for the amazing React library
- MongoDB for the robust database solution
- Express.js for the web framework
- Vite for the lightning-fast build tool
- Open Source Community for inspiration and tools
If this project helped you, please consider giving it a β star on GitHub!
Made with β€οΈ by the MERN Stack Team