Setting up
Create a virtual environment on the root of the application and activate it.
python3 -m venv .venv
source .venv/bin/activate
pip3 install -r requirements.txt
Running the set up script
python3 setup.py
Running the application on local
Create a virtual environment, activate it, install the requirements, set environmental variables from local.env and run the application
. ./local.env
uvicorn main:app --reload --port 8080
Code Styling & Commit Guidelines
To maintain code quality and consistency:
- TypeScript (Frontend): We follow Angular Coding Style Guide by leveraging the use of Google's TypeScript Style Guide using
gts. This includes a formatter, linter, and automatic code fixer. - Python (Backend): We adhere to the Google Python Style Guide, using tools like
pylintandblackfor linting and formatting. - Commit Messages: We suggest following Angular's Commit Message Guidelines to create clear and descriptive commit messages.
Frontend (TypeScript with gts)
- Initialize
gts(if not already done in the project): Navigate to thefrontend/directory and run:This will set upnpx gts initgtsand create necessary configuration files (liketsconfig.json). Ensure yourtsconfig.json(or a related gts config file like.gtsrc) includes an extension forgtsdefaults, typically:{ "extends": "./node_modules/gts/tsconfig-google.json", // ... other configurations } - Check for linting issues:
(This assumes a
npm run lintlintscript is defined inpackage.json, e.g.,"lint": "gts lint") - Fix linting issues automatically (where possible):
(This assumes a
npm run fixfixscript is defined inpackage.json, e.g.,"fix": "gts fix")
Backend (Python with pylint and black)
- Ensure Dependencies are Installed:
Add
pylintandblackto yourbackend/requirements.txtfile:Then install them within your virtual environment:pylint blackpip install pylint black # or pip install -r requirements.txt - Configure
pylint: It's recommended to have a.pylintrcfile in yourbackend/directory to configurepylintrules. You might need to copy a standard one or generate one (pylint --generate-rcfile > .pylintrc). - Check for linting issues with
pylint: Navigate to thebackend/directory and run:(Or specify modules/packages:pylint .pylint your_module_name) - Format code with
black: To automatically format all Python files in the current directory and subdirectories:python -m black . --line-length=80