RojgarNepal is a comprehensive platform designed to connect freelancers with clients, enabling seamless job postings, applications, and communication. The project involves multiple modules including client, server, admin, and recommendation systems.
- Introduction
- Features
- Project Structure
- Installation and Setup
- Usage
- Contributing
- License
- Screenshots
RojgarNepal is a job portal designed to facilitate connections between freelancers and clients. It includes features such as job postings, applications, user profiles, and communication tools.
- Token Based User Authentication and Authorization
- Job Posting and Application
- Real-time Chat between Clients and Freelancers using socket.io
- Admin Dashboard for Managing Users and Jobs
- Recommendation System for Freelancer Suggestions using Collaborative Filtering Technique
The project is divided into several directories, each handling a specific part of the application:
- admin: React project for the admin dashboard.
- client: React project for the frontend.
- server: Node.js project for the backend.
- recommendation: Flask project for the recommendation system.
To run the project, follow the instructions below:
Clone the repository:
git clone [email protected]:sandesh-khatiwada/RojgarNepal.git
-
Navigate to the server directory:
cd RojgarNepal/server
-
Install server dependencies:
npm install
-
Set Up Database:
- Create a MySQL database named
RojgarNepal
.
- Create a MySQL database named
-
Create environment variables:
- Create a
.env
file inside theserver
directory. - Provide the following environment variables. Use
.env.example
as a reference. - If default values are provided in
.env.example
, use the same.
PORT=5000 #Server will be running at 5000 port DB_NAME=RojgarNepal #Default name for the database DB_USER=your-DB-username #Provide your username for the database DB_PASS=your-DB-password #Provide database password DB_HOST=your-DB-host #Eg:localhost JWT_SECRET_KEY=your-jwt-secretkey #Eg: 'mysecret123' EMAIL_ADDRESS=your-email-address EMAIL_PASS=your-email-password EMAIL_TRANSPORTER_PASS=your-email-transporter-pass #you can get email transporter pass from IMAGE_URL=http://localhost:5000/uploads/ #path for directory used to store image files #esewa test credentials ESEWA_SECRET_KEY=8gBm/:&EnhH.1/q ESEWA_GATEWAY_URL=https://rc-epay.esewa.com.np ESEWA_PRODUCT_CODE=EPAYTEST ADMIN_ID=admin123 #Use this id for admin login ADMIN_PASSWORD=admin@123 #Use this password for admin login
- Create a
-
Start the server:
npm run start
-
Create a new terminal and navigate to the client directory:
cd RojgarNepal/client
-
Install client dependencies:
npm install
-
Run the client:
npm run dev
-
Create a new terminal and navigate to the admin directory:
cd RojgarNepal/admin
-
Install admin dependencies:
npm install
-
Run the admin module:
npm run dev
-
Navigate to the recommendation directory:
cd RojgarNepal/recommendation
-
Install the dependencies included in
requirements.txt
:pip install -r requirements.txt
-
Create environment variables:
- Create a
.env
file inside therecommendation
directory. - Provide the following environment variables. Use
.env.example
as a reference. - If default values are provided in
.env.example
, use the same.
DB_USERNAME=your-DB-username #Provide your username for the database Eg:root DB_PASSWORD=your-DB-password #Provide database password DB_NAME=RojgarNepal
- Create a
-
Run the recommendation server:
python app.py
- Start the server, client, admin, and recommendation systems as described above.
- Access the client application at
http://localhost:5173
. - Access the admin dashboard at
http://localhost:5174
. - The server will be running at
http://localhost:5000
. - The recommendation server will be running at
http://localhost:8000
. - The default login credentials for admin is : username= admin123 password= admin@123
Contributions are welcome! Please follow the standard GitHub flow for contributions.
This project is licensed under the MIT License.