Welcome to handshake!
This README serves as a guide to understand and utilize the features of our web application effectively. Handshake is a dynamic and versatile web-based application poised to redefine the job search and classified ad experience. It combines the functionalities of a job board and classified ads platform, enabling and empowering users to effortlessly browse, post, and manage listings for employment opportunities and transactions.
- Clone this repository to your local machine.
- Ensure that Python and Node is installed on your system
- Use the terminal or command prompt and navigate to the server directory
- Create a virtual environment in handshake directory using this code:
For Windows
python -m venv venv
.\venv\Scripts\activate.bat
For Linux
sudo apt-get update
pip install --upgrade pip
sudo apt-get install libmysqlclient-dev
sudo apt-get install libpq-dev
python -m venv venv
source venv/bin/activate
- Install all dependencies
- cd into the server directory
pip install -r requirement.txt
- Set up your MySQL server
- Update the SQL uri in the init file by commenting line 48 and commenting out line 47
- copy the code in setup_mysql_test.sql and run it in your running MySQL server
- Or
mysql -u your_username -p < setup_mysql_test.sql
- copy the code in data.sql and run it in your running MySQL server, This will prepopulate you database with important data which is very important for the software to function
- Or
mysql -u your_username -p < data.sql
- Start the flask app, (cd to the handshake directory, very important!)
python -m server.app
Usage
- Your server API is now accessible on port 5000, http://localhost:5000/api/{endpoint}
- Use the terminal or command prompt and navigate the client directory
- Install dependencies using
npm install
- Start the development server using
npm run dev
- Access the application in your browser at http://localhost:5173.
Below is the endpoints available in handshake:
- /api/signup: This endpoint signs up the user.
Method: POST URL: localhost:5000/api/signup
Mandatory Parameters:
{'firstname': firstname, 'lastname': lastname, 'email': email, 'phone_number': phone_number, 'password': password, 'confirm_password': confirm_password} Response:
{
'user_id': user.id
}