A quick and easy job board for professionals in the data science field to look for opportunities that suit their skills, experience, and interests. The application features user authentication, job shortlisting, job posting replies, filtering, user profiles, and employer reviews.
The web interface was written using React.js and the component library ChakraUI. The backend is a MySQL database which interacts with the frontend using an Express/Node API. This API makes all the SQL queries required for all features and the CRUD functionality behind them.
See the "How to Test Features" folder for more detail about each feature.
Login page:
How to run the project
Before you begin, the project is currently set to run the production dataset. If you wish to run it with the sample data, go to job-board-app/server/config/db.js
and replace line 6 with database:"job_board_sample_db"
.
Firstly, in the root directory, run npm install
to install required dependencies.
Next, you need to set up the databse. Navigate to /sql
and run the following one after another. Note: each file will run for a few seconds. A description for what each file does is found in SQL Code section of ReadMe.
node db-create-connections.js
node db-create-tables.js
node db-add-data.js
Now set up the server. The server (which the client depends on) can be started by running node Server/index.js
.
To set up the client, navigate to /client
in another terminal and run npm install
to install required dependencies. Then run the web app using npm start
.
How to create and load sample and production database
To create and load sample and production databse, navigate to /sql
and run the following one after another.
node db-create-connections.js
node db-create-tables.js
node db-add-data.js
- db-create-connections.js creates a connection to the databse and then creates two databases:
job_board_sample_db
andjob_board_prod_db
for sample data and production data respectively. - db-create-tables.js creates the tables for both databases
- db-add-data.js parses through the two data csv files (sample,prod) and adds the data to both databses respectively
SQL Code
In job-board-app/sql you can find all the sql code used to setup the databse.
- db-create-connections.js creates a connection to the databse and then creates two databases:
job_board_sample_db
andjob_board_prod_db
for sample data and production data respectively.
host: "localhost",
user: "root",
password: "password"
- db-create-tables.js creates the tables for both databases
- db-add-data.js parses through the two data csv files (sample,prod) and adds the data to both databses respectively
Sample Tests
The queries mentioned in the Report for sample data are seen in job-board-app/tests/sampledata/test-sample.sql
and the output is displayed in job-board-app/tests/sampledata/test-sample.out
Feature Tests on Production
The queries & ouput mentioned in the Report for production data are grouped by feature in job-board-app/tests