Biruh Wellness Center is a comprehensive full-stack web application designed to streamline operations in Ethiopian mental health clinics. The system enables patients to book therapy sessions, therapists to manage schedules and maintain confidential session notes, and administrators to oversee clinic operations with role-based access control.
# Biruh Wellness Center
Biruh Wellness Center is a full-stack mental health clinic management system designed for patient registration, appointment scheduling, therapist workflows, and administrative oversight. The platform combines a React frontend with an Express backend and a PostgreSQL database to support clinic operations in a secure and organized way.
## Project Overview
This application supports:
- Patient and therapist management
- Appointment booking and status tracking
- Session notes and treatment planning
- Crisis incident logging
- Leave requests and audit logging
- Role-based access for patients, therapists, receptionists, and admins
## Technology Stack
### Frontend
- React.js
- React Router
- Tailwind CSS
- Axios
- Chart.js
- React Hook Form and Toast notifications
### Backend
- Node.js
- Express.js
- PostgreSQL
- JWT authentication
- bcrypt password hashing
- Joi validation
- Nodemailer
- Helmet, CORS, rate limiting, and multer
### Development Tools
- nodemon
- Jest and Supertest
- Concurrently
## Setup and Run Instructions
### Prerequisites
- Node.js 18+
- PostgreSQL 14+
- npm
### 1. Clone and install dependencies
From the project root:
```bash
npm install
cd backend && npm install
cd ../frontend && npm install
```
### 2. Configure environment variables
Create a backend environment file by copying the example file:
```bash
cd backend
cp .env.example .env
```
Update the values in the new .env file with your local configuration. The main variables include:
- PORT
- DB_HOST, DB_PORT, DB_NAME, DB_USER, DB_PASSWORD
- JWT_SECRET and JWT_REFRESH_SECRET
- EMAIL_HOST, EMAIL_USER, EMAIL_PASS
- FRONTEND_URL
### 3. Create and initialize the database
Create a PostgreSQL database and run the schema file:
```bash
psql -U postgres -c "CREATE DATABASE biruh_wellness_db;"
psql -U postgres -d biruh_wellness_db -f database/schema.sql
psql -U postgres -d biruh_wellness_db …