A modern, full-stack job portal built with the MERN stackβconnecting job seekers with recruiters through an intuitive, animated, and responsive platform.
Features β’ Demo β’ Tech Stack β’ Getting Started β’ Contributing
Add screenshots or GIFs of your application here
|
|
- Secure Authentication - JWT-based login system with role-based access control
- Responsive Design - Seamless experience across mobile, tablet, and desktop
- Real-time Updates - Instant notifications for applications and job posts
- Cloud Storage - Profile images and resumes stored on Cloudinary
- Modern UI/UX - Beautiful interfaces powered by shadcn/ui and Framer Motion
βοΈ React.js - Component-based UI library
π¨ Tailwind CSS - Utility-first CSS framework
π shadcn/ui - Accessible component library
β¨ Framer Motion - Animation library
π§ React Router - Client-side routing
π Axios - HTTP client
π’ Node.js - JavaScript runtime
β‘ Express.js - Web application framework
π MongoDB - NoSQL database
π¦ Mongoose - MongoDB ODM
π JWT - Authentication tokens
βοΈ Cloudinary - Media storage
next-role/
β
βββ client/ # Frontend React application
β βββ src/
β β βββ components/ # Reusable UI components
β β βββ pages/ # Page components
β β βββ hooks/ # Custom React hooks
β β βββ utils/ # Helper functions
β β βββ redux/ # State management
β β βββ App.jsx # Root component
β βββ package.json
β
βββ server/ # Backend Express API
β βββ controllers/ # Request handlers
β βββ models/ # Database schemas
β βββ routes/ # API endpoints
β βββ middlewares/ # Auth & validation
β βββ utils/ # Helper functions
β βββ index.js # Server entry point
β
βββ README.md
Before you begin, ensure you have the following installed:
- Node.js (v14 or higher)
- MongoDB (local or MongoDB Atlas account)
- npm or yarn
1. Clone the repository
git clone https://github.com/p-thanks/Next-Role.git
cd Next-Role2. Setup Backend
cd server
npm installCreate a .env file in the server directory:
MONGODB_URI=your_mongodb_connection_string
PORT=8000
SECRET_KEY=your_jwt_secret_key
CLOUDINARY_API_KEY=your_cloudinary_api_key
CLOUDINARY_SECRET_KEY=your_cloudinary_secret_key
CLOUDINARY_NAME=your_cloudinary_cloud_name
NODE_ENV=development3. Setup Frontend
cd ../client
npm install4. Run the Application
Open two terminal windows:
# Terminal 1 - Start backend server
cd server
npm run dev# Terminal 2 - Start frontend
cd client
npm run dev5. Access the Application
- π Frontend:
http://localhost:5173 - π Backend API:
http://localhost:8000
graph LR
A[User] -->|Register/Login| B[Frontend]
B -->|Credentials| C[Backend API]
C -->|Validate| D[MongoDB]
D -->|User Data| C
C -->|JWT Token| B
B -->|Store Token| E[Local Storage]
B -->|Protected Routes| F[Access Dashboard]
- Users register or login with email and password
- Backend validates credentials and issues JWT token
- Token is stored securely on the client
- Protected routes verify token for access control
- Role-based permissions (Student/Recruiter) enforce authorization
The application uses shadcn/ui for consistent, accessible components:
- π Forms - Input fields, textareas, and file uploads
- π Buttons - Primary, secondary, and outline variants
- π Cards - Job listings and application cards
- ποΈ Tables - Applicant management tables
- π Modals - Confirmation dialogs and forms
- π¬ Animations - Smooth transitions with Framer Motion
Contributions are what make the open-source community amazing! Any contributions you make are greatly appreciated.
- Fork the Project
- 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
This project is licensed under the MIT License - see the LICENSE file for details.


