Skip to content

pthanksdev/Next-Role

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

21 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ’› Next Role

Connect Talent with Opportunity

React Node.js MongoDB Tailwind

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


πŸ“Έ Demo

Add screenshots or GIFs of your application here


✨ Features

πŸŽ“ For Job Seekers

  • πŸ” Smart Job Search - Filter by location, role, and salary
  • πŸ“ One-Click Applications - Apply instantly with saved profiles
  • πŸ“Š Application Tracker - Monitor your application status in real-time
  • πŸ”” Job Alerts - Get notified about matching opportunities
  • πŸ’Ό Profile Management - Upload resume and showcase skills

πŸ§‘β€πŸ’Ό For Recruiters

  • ✍️ Easy Job Posting - Create listings in minutes
  • πŸ‘₯ Applicant Management - Review and filter candidates
  • πŸ“ˆ Analytics Dashboard - Track job performance metrics
  • ✏️ Edit & Manage - Update or remove job postings anytime
  • 🎯 Targeted Reach - Connect with qualified candidates

πŸ” Core Features

  • 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

πŸ› οΈ Tech Stack

Frontend

βš›οΈ  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

Backend

🟒  Node.js           - JavaScript runtime
⚑  Express.js        - Web application framework
πŸƒ  MongoDB           - NoSQL database
πŸ“¦  Mongoose          - MongoDB ODM
πŸ”‘  JWT               - Authentication tokens
☁️  Cloudinary        - Media storage

πŸ“ Project Structure

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

πŸš€ Getting Started

Prerequisites

Before you begin, ensure you have the following installed:

  • Node.js (v14 or higher)
  • MongoDB (local or MongoDB Atlas account)
  • npm or yarn

Installation

1. Clone the repository

git clone https://github.com/p-thanks/Next-Role.git
cd Next-Role

2. Setup Backend

cd server
npm install

Create 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=development

3. Setup Frontend

cd ../client
npm install

4. 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 dev

5. Access the Application

  • 🌐 Frontend: http://localhost:5173
  • πŸ”Œ Backend API: http://localhost:8000

πŸ”’ Authentication Flow

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]
Loading
  1. Users register or login with email and password
  2. Backend validates credentials and issues JWT token
  3. Token is stored securely on the client
  4. Protected routes verify token for access control
  5. Role-based permissions (Student/Recruiter) enforce authorization

🎨 UI Components

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

πŸ“Έ Screenshots

Landing Page

Landing Page

Job Listings

Job Listings

Recruiter Dashboard

Dashboard

🀝 Contributing

Contributions are what make the open-source community amazing! Any contributions you make are greatly appreciated.

  1. Fork the Project
  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

πŸ“ License

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


πŸ‘¨β€πŸ’» Author

Made with πŸ’› by Pthaks

LinkedIn GitHub


πŸ™ Acknowledgments


⭐ Star this repo if you find it helpful!

Built with passion for connecting talent with opportunity πŸš€

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published