This project consists of a full-stack application with a ReactJS frontend, a FastAPI backend, and SQLite as the database. It also uses OpenAI Whisper for transcription. Read architecture.pdf for a description of the design of the project.
- Note Frontend for master branch is in a multi-page UI for better views. If needed, for single page UI, please use branch "v2_single_page"
- Python: 3.9 - 3.12 (Please use python version 3.12 for best compatibility
- pip: latest version
-
If you're running the application locally (not using Docker), you will need to install FFmpeg manually if your system does not have it installed, for the transcription functionality to work. Run the following command on terminal
-
For macOS:
brew install ffmpeg- For Linux:
sudo apt update
sudo apt install ffmpegThe backend is built using FastAPI. Follow these steps to start the backend:
cd backend
python3 -m venv venvOn MacOS/Linux:
source venv/bin/activateOn windows:
venv\Scripts\activateMake sure you in the root folder and run the following command:
pip install --upgrade pip
pip install --upgrade setuptools
pip install -r requirements.txtcd ..
uvicorn backend.app.fastapi.main:appThe frontend is built using ReactJS. Follow these steps to start the frontend:
Ensure that you are in the project root directory
cd frontend
npm installnpm startFollow these steps to run the pytest tests in this project:
Make sure you have a virtual environment set up and activate it IF YOU HAVE NOT DONE SO. Run the following command in speech/backend:
python3 -m venv venv
source venv/bin/activate # On Windows, use `venv\Scripts\activate`
pip install -r requirements.txtcd ..
pytest backend/tests/backend_test.pyEnsure you are in the frontend folder "speech/frontend" and run the following command
npm installEnsure you are in the frontend folder "speech/frontend" and run the following command
npm test -- --watchAll --verboseEnsure you are in the root directory and run the following command:
docker-compose up --build