Skip to content

WorkX is a Django-based job portal that connects freelancers with businesses. It features separate authentication for freelancers and businesses, Google Sign-In integration, and dynamic dashboards for job listings and postings. The project also includes a React frontend with a sleek black-themed UI.

License

Notifications You must be signed in to change notification settings

AdityaSeth777/WorkX

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WorkX Logo

WorkX

Status GitHub Issues GitHub Pull Requests License


WorkX is a Django-based job portal that connects freelancers with businesses. It features separate authentication for freelancers and businesses, Google Sign-In integration, and dynamic dashboards for job listings and postings. The project also includes a React frontend with a sleek black-themed UI.

📝 Table of Contents

🧐 About

The WorkX project is a comprehensive job platform designed to streamline the interaction between freelancers and businesses. Built with Django, React, and Firebase, it offers dual authentication systems—one for freelancers and another for businesses—integrated with Google Sign-In. The platform’s backend leverages Django Rest Framework (DRF) to provide a secure and scalable API, while the frontend, crafted with React, offers a sleek, black-themed user interface. The project integrates various APIs for dynamic content, such as live weather updates and currency conversion rates.

Additionally, Elasticsearch is used for advanced search functionalities, making it easier to match freelancers with relevant job postings. The business dashboard allows companies to post jobs and manage their listings, which are stored in a robust database and retrieved by freelancers through their dedicated portal. The platform is optimized for performance and scalability, ensuring a smooth user experience.

Setup

Frontend Setup Instructions
  • Fork and Clone the repo using
 git clone https://github.com/Rohantech231/WorkX.git
 cd WorkX
  • Get the API key from https://api.imgbb.com/ and replace it with REACT_APP_IMGBB_API_KEY in .env.example

  • Get a new API key from https://smtpjs.com/ and replace it with REACT_APP_API_KEY in .env.example

  • Rename the file .env.example to .env

  • Install node dependencies

 npm install
  • Run Server at localhost using
 npm start
Backend Setup Instructions
  • Fork and Clone the repo using
 git clone https://github.com/Rohantech231/WorkX.git
 cd WorkX
  • Change Branch to backend using
 git checkout backend
  • Setup Virtual environment
 python3 -m venv env
  • Activate the virtual environment
 source env/bin/activate
  • Install dependencies using
 pip install -r requirements.txt
  • Make migrations using
 python manage.py makemigrations
  • Migrate Database
 python manage.py migrate
  • Create a superuser
 python manage.py createsuperuser
  • Run server using
 python manage.py runserver

Deployment

Deploying the Application on AWS
  • Sign up for AWS: If you don't already have an AWS account, sign up here.

  • Install AWS CLI: Download and install the AWS CLI from here.

  • Configure AWS CLI: Run the following command to configure your AWS CLI with your credentials:

 aws configure
  • Set up Elastic Beanstalk (EB):

    • Install the EB CLI using pip:
       pip install awsebcli
    • Initialize your Elastic Beanstalk application:
       eb init -p python-3.8 WorkX
      Replace python-3.8 with your Python version.
  • Deploy the application:

    • Create an environment and deploy:
       eb create workx-env
       eb deploy
    • To open your application in the browser:
       eb open
  • Monitor and manage your application:

    • View the status of your environment:
       eb status
    • View logs:
       eb logs
  • To terminate the environment:

     eb terminate workx-env

For more detailed information, refer to the AWS Elastic Beanstalk documentation.

⛏️ Built Using

Frontend:

  • React: For building the user interface.
  • JavaScript (ES6+): Core programming language for frontend development.
  • HTML5 & CSS3: Markup and styling.
  • React Router: For navigation and routing.
  • Bootstrap/Tailwind CSS: For responsive and modern UI components.
  • Firebase: For authentication and real-time data management.
  • Google Sign-In: For social login functionality.

Backend:

  • Django: Python-based web framework for the backend.
  • Django Rest Framework (DRF): For building RESTful APIs.
  • Django-CORS-Headers: To handle Cross-Origin Resource Sharing (CORS) in the API.
  • Django Simple JWT: For token-based authentication.
  • Django-Phonenumber-Field: For handling and validating phone numbers.
  • Django-Heroku: For deploying the application to Heroku.

Database:

  • PostgreSQL: Primary database for storing user data, job postings, and other persistent information.

Search & Indexing:

  • Elasticsearch: For advanced search functionalities.
  • Elasticsearch DSL: High-level library for Elasticsearch.

Deployment & DevOps:

  • AWS: Used for deployment.
  • Git: Version control system.
  • GitHub: For code hosting and collaboration.

Additional Tools & Libraries:

  • Webpack: Module bundler for JavaScript.
  • Babel: JavaScript compiler.
  • Node.js & npm: For managing frontend dependencies and tools.
  • ESLint: For linting and code quality.
  • Prettier: Code formatting tool.

✍️ Authors

🎉 Acknowledgements

  • Inspiration
  • References

About

WorkX is a Django-based job portal that connects freelancers with businesses. It features separate authentication for freelancers and businesses, Google Sign-In integration, and dynamic dashboards for job listings and postings. The project also includes a React frontend with a sleek black-themed UI.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published