diff --git a/README.md b/README.md index 153e3e6..c3b885c 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,77 @@ +A monorepo setup to manage both Backend and Frontend of the Dental Manager application. + +## Prerequisites + +Before running the project, make sure the following are installed on your machine: + +- **Node.js** v18+ +- **Python** 3.10+ +- **PostgreSQL** (primary database) +- **Redis** (job queue for Selenium and OCR tasks) + +### Install Node.js (Ubuntu/Debian) + +```sh +curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - +sudo apt-get install -y nodejs + +# Verify +node -v # should print v20.x.x +npm -v +``` + +### Install Python (Ubuntu/Debian) + +```sh +sudo apt-get install -y python3 python3-pip python3-venv + +# Verify +python3 --version # should print 3.10 or higher +``` + +> The Selenium service also requires its Python dependencies. Install them once: +> ```sh +> cd apps/SeleniumService +> pip3 install -r requirements.txt +> ``` + + +### Install PostgreSQL (Ubuntu/Debian) + +```sh +sudo apt-get install -y postgresql postgresql-contrib +sudo systemctl enable postgresql +sudo systemctl start postgresql + +# Create a database and user (replace with your own values) +sudo -u postgres psql -c "CREATE USER dental_user WITH PASSWORD 'yourpassword';" +sudo -u postgres psql -c "CREATE DATABASE dental_db OWNER dental_user;" + +# Verify +psql -U dental_user -d dental_db -c "\conninfo" +``` + +> Then update `DATABASE_URL` in your `.env` file: +> ``` +> DATABASE_URL="postgresql://dental_user:yourpassword@localhost:5432/dental_db" +> ``` + +### Install Redis (Ubuntu/Debian) + +```sh +sudo apt-get install -y redis-server +sudo systemctl enable redis-server +sudo systemctl start redis-server + +# Verify it's running +redis-cli ping # should print: PONG +``` + +> Both PostgreSQL and Redis are system services, not npm packages. `npm install` handles all Node.js dependencies automatically — these must be installed separately at the OS level. + + + + # Dental Manager - Starter A monorepo setup to manage both Backend and Frontend of the Dental Manager application.