A full-stack job platform application connecting job seekers (workers) with employers. Built with React, Express.js, and MongoDB.
- Browse and search available jobs
- Create and manage worker profile
- Apply for job positions
- Track application status
- Authentication system (login/register)
- Post and manage job listings
- Create and update company profile
- Review applicant profiles
- Dashboard for managing jobs
- Authentication system (login/register)
- Job search and filtering
- Detailed job pages
- Contact page
- About page
- Responsive design with Tailwind CSS
- Modern UI with Material-UI components
- Framework: React 18
- Build Tool: Vite
- Styling: Tailwind CSS
- UI Components: Material-UI (MUI)
- Routing: React Router DOM
- Rich Text Editor: React Quill
- HTTP Client: Axios
- Runtime: Node.js
- Framework: Express.js
- Database: MongoDB with Mongoose ODM
- Authentication: JWT (JSON Web Tokens)
- Password Hashing: bcryptjs
- File Upload: Multer
- Environment Variables: dotenv
- CORS: cors middleware
khedemti/
├── client/ # Frontend React application
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ ├── pages/ # Page components
│ │ ├── context/ # React Context providers
│ │ ├── controllers/ # Frontend business logic
│ │ └── routes/ # Route protection components
│ ├── public/ # Static assets
│ └── package.json
│
├── server/ # Backend Express application
│ ├── Models/ # Mongoose schemas
│ ├── Routes/ # API routes
│ ├── controllers/ # Route controllers
│ ├── middlewares/ # Custom middlewares
│ └── server.js # Server entry point
│
└── README.md
- Node.js (v16 or higher)
- npm or yarn
- MongoDB installed and running locally, or MongoDB Atlas account
-
Clone the repository
git clone <repository-url> cd khedemti
-
Install client dependencies
cd client npm install -
Install server dependencies
cd ../server npm install -
Configure environment variables
Create a
.envfile in theserverdirectory:PORT=5000 MONGODB_URI=mongodb://localhost:27017/khedemti JWT_SECRET=your-secret-key
-
Start the backend server
cd server npm run devServer will run on
http://localhost:5000 -
Start the frontend application (in a new terminal)
cd client npm run devClient will run on
http://localhost:5173(default Vite port) -
Access the application Open your browser and navigate to
http://localhost:5173
npm run dev- Start development servernpm run build- Build for productionnpm run preview- Preview production buildnpm run lint- Run ESLint
npm run dev- Start server with nodemon (auto-reload)
The application implements separate authentication for:
- Workers -
/registerand/loginfor job seekers - Employers -
/emp/registerand/emp/loginfor employers
Both use JWT tokens for session management with protected routes.
The server provides RESTful API endpoints for:
- User authentication (workers and employers)
- Job CRUD operations
- Profile management
- Search functionality
The project uses:
- Tailwind CSS for utility-first styling
- Material-UI for pre-built components
- Emotion for CSS-in-JS styling with MUI
- Custom CSS in
index.cssfor global styles
- Fork the repository
- Create a 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 private and proprietary.
Jonas
Note: This is a portfolio project demonstrating full-stack development skills with modern web technologies.
