Frontend: Bootstrap, Javascript, React
Backend: Python (Flask)
Database: MySQL (Requires WAMP to be running)
python -m venv env
Activate your virtual environment based on your local environment (Have to activate to be in the virtual environment) (For consistency purposes when testing and for the CI/CD pipeline)
-
source env/bin/activate # Linux/macOS
-
env\Scripts\activate.bat # In CMD
-
env\Scripts\Activate.ps1 # In Powershell
Make sure that any newly installed dependencies are added to the requirements.txt with pip freeze >> requirements.txt
pip install -r requirements.txt
SQLALCHEMY_DATABASE_URI=mysql://root@localhost:3306/spm_db # for default MySQL settings on Windows
-
Ensure that Wampserver is installed and running.
-
Configure MySQL settings within Wampserver if necessary.
-
If first time opening the app, run the
spm_db.sql
file in MySQL Workbench to set up the database
-
cd backend
-
python run.py
cd sbrp_client
npm i
npm run dev
-
Open a new shell (as the previous one should have been locked with python run.py)
-
python -m flake8 backend/
python -m yapf --recursive --diff --parallel backend
-
cd backend
-
python unit_tests.py
python integration_tests.py
-
deactivate # Or use the deactivate scripts in env/Scripts/
-
env\Scripts\deactivate.bat # In CMD
Simply delete the env folder
- With
npm run dev
running the frontend onlocalhost:5173
and withbackend/run.py
running the flask app onlocalhost:5000
- In a new separate terminal:
cd sbrp_client
npx cypress run
- At the login page, select the user role (You can type to filter out). Sample users are provided at the top.
- As a HR, navigate to Create Listing to create a new role listing.
- Go to Listings to see posted role listings. Click to see details and edit
- All tables are interactive, with text filtering and sorting for every column (click to toggle)
- Click on view applicants to see incoming applications. Click on an application to view applicant details, role-skill match, and self-description
- As a staff, go to Listings to browse role listings using the interactive table, where you can sort by fields like role-skill match
- Click on a role listing to apply and fill up an optional self-description
- In this release, manager shares the same fucntionality as a staff.