Skip to content

jonas-kr/khedemti

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Khedemti - Job Platform

A full-stack job platform application connecting job seekers (workers) with employers. Built with React, Express.js, and MongoDB.

Homepage

🌟 Features

For Job Seekers (Workers)

  • Browse and search available jobs
  • Create and manage worker profile
  • Apply for job positions
  • Track application status
  • Authentication system (login/register)

For Employers

  • Post and manage job listings
  • Create and update company profile
  • Review applicant profiles
  • Dashboard for managing jobs
  • Authentication system (login/register)

General Features

  • Job search and filtering
  • Detailed job pages
  • Contact page
  • About page
  • Responsive design with Tailwind CSS
  • Modern UI with Material-UI components

🛠️ Tech Stack

Frontend (Client)

  • 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

Backend (Server)

  • 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

📁 Project Structure

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

🚀 Getting Started

Prerequisites

  • Node.js (v16 or higher)
  • npm or yarn
  • MongoDB installed and running locally, or MongoDB Atlas account

Installation

  1. Clone the repository

    git clone <repository-url>
    cd khedemti
  2. Install client dependencies

    cd client
    npm install
  3. Install server dependencies

    cd ../server
    npm install
  4. Configure environment variables

    Create a .env file in the server directory:

    PORT=5000
    MONGODB_URI=mongodb://localhost:27017/khedemti
    JWT_SECRET=your-secret-key

Running the Application

  1. Start the backend server

    cd server
    npm run dev

    Server will run on http://localhost:5000

  2. Start the frontend application (in a new terminal)

    cd client
    npm run dev

    Client will run on http://localhost:5173 (default Vite port)

  3. Access the application Open your browser and navigate to http://localhost:5173

🔧 Available Scripts

Client

  • npm run dev - Start development server
  • npm run build - Build for production
  • npm run preview - Preview production build
  • npm run lint - Run ESLint

Server

  • npm run dev - Start server with nodemon (auto-reload)

🔐 Authentication Flow

The application implements separate authentication for:

  • Workers - /register and /login for job seekers
  • Employers - /emp/register and /emp/login for employers

Both use JWT tokens for session management with protected routes.

📝 API Endpoints

The server provides RESTful API endpoints for:

  • User authentication (workers and employers)
  • Job CRUD operations
  • Profile management
  • Search functionality

🎨 Styling

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.css for global styles

🤝 Contributing

  1. Fork the repository
  2. Create a 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 private and proprietary.

👨‍💻 Author

Jonas


Note: This is a portfolio project demonstrating full-stack development skills with modern web technologies.

About

A full-stack job platform application connecting job seekers (workers) with employers

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages