1919├── .github/
2020│ └── workflows/
2121│ └── pre-commit.yml # CI for pre-commit hooks
22- ├── api/ # URLs for API-only routing
22+ ├── api/ # API-only routing
2323│ ├── __init__.py
2424│ └── urls.py
2525│
26- ├── backend/ # Django project configuration
26+ ├── backend/ # Django project configuration
2727│ ├── __init__.py
2828│ ├── asgi.py
29- │ ├── settings.py # Main project settings
30- │ ├── urls.py # Root URL configuration
29+ │ ├── settings.py # Main project settings
30+ │ ├── urls.py # Root URL configuration
3131│ └── wsgi.py
3232│
33- ├── users/ # App-level folder for user module
33+ ├── users/ # App-level folder
3434│ ├── models.py
3535│ ├── views.py
3636│ ├── serializers.py
3939│ └── ... (other app files)
4040│
4141├── test/
42- │ └── test_users.py # User-related unit tests
42+ │ └── test_users.py # Tests
4343│
44- ├── .env # Environment variables
44+ ├── .env # Environment variables
4545├── .gitignore
4646├── .pre-commit-config.yaml
4747├── .python-version
4848├── pyproject.toml
4949├── README.md
50- ├── requirements.txt # Project dependencies
50+ ├── requirements.txt # Project dependencies
5151├── schema.yml
5252└── uv.lock
5353```
@@ -66,19 +66,17 @@ This project uses **JWT Authentication** for secure and scalable user sessions.
6666 * Manage profile
6767 * View purifier products
6868 * Book installation or service
69-
7069* ** Technician**
7170
7271 * Login
7372 * View assigned service requests
7473 * Update work status
7574 * Check payment & service history
76-
7775* ** Admin**
7876
7977 * Manage all users & technicians
80- * View and deactivate user accounts
81- * Access all profiles and service/payment records
78+ * View and deactivate accounts
79+ * Access profiles and service/payment records
8280
8381---
8482
@@ -102,17 +100,53 @@ This project uses **JWT Authentication** for secure and scalable user sessions.
102100
103101* Manage all users & technicians
104102* View all profiles
105- * Deactivate/activate accounts
106- * Track technician work and payments
103+ * Activate/Deactivate accounts
104+ * Track technician work & payments
107105
108106---
109107
110108## 🛠 Tech Stack
111109
112110* ** Backend:** Django, Django REST Framework
113111* ** Authentication:** JWT
114- * ** Database:** PostgreSQL
115- * ** Tools:** Pre-commit, GitHub Actions, uv package manager
112+ * ** Database:** PostgreSQL
113+ * ** Tools:** Pre-commit, GitHub Actions, ** uv package manager**
114+
115+ ---
116+
117+ ## 🧰 Prerequisites for New Developers
118+
119+ Before setting up the project, ensure the following are installed on your system:
120+
121+ ### ✔ Install Python
122+
123+ This project uses the Python version defined in ` .python-version ` .
124+ If you don't have it installed, use ** pyenv** or download the correct version manually.
125+
126+ ```
127+ # Example (using pyenv)
128+ pyenv install $(cat .python-version)
129+ pyenv local $(cat .python-version)
130+ ```
131+
132+ ### ✔ Install uv (Python package manager)
133+
134+ If uv is not installed, install it with:
135+
136+ ```
137+ pip install uv
138+ ```
139+
140+ (Or install via official instructions: [ https://docs.astral.sh/uv/ ] ( https://docs.astral.sh/uv/ ) )
141+
142+ ### ✔ Install PostgreSQL
143+
144+ Download & install PostgreSQL from the official website.
145+ Create a database using the same name provided in your ` .env ` file:
146+
147+ ```
148+ createdb RO_db
149+ ```
116150
117151---
118152
@@ -131,12 +165,18 @@ cd RO
131165cp .env.example .env
132166```
133167
134- Update with your settings .
168+ Update values according to your setup .
135169
136- ### 3️⃣ Install dependencies
170+ ### 3️⃣ Install dependencies using uv
137171
138172```
139- pip install -r requirements.txt
173+ uv sync
174+ ```
175+
176+ (or install fresh)
177+
178+ ```
179+ uv pip install -r requirements.txt
140180```
141181
142182### 4️⃣ Apply migrations
@@ -145,7 +185,7 @@ pip install -r requirements.txt
145185python manage.py migrate
146186```
147187
148- ### 5️⃣ Run the development server
188+ ### 5️⃣ Start the development server
149189
150190```
151191python manage.py runserver
@@ -159,29 +199,67 @@ python manage.py runserver
159199pytest
160200```
161201
162- Tests are located in ` test/ ` directory.
202+ Tests are located inside the ` test/ ` directory.
163203
164204---
165205
166206## 📄 API Documentation
167207
168208API schema is available in ` schema.yml ` .
169- You can integrate with ** Swagger** , ** ReDoc** , or ** Postman** .
209+ You may generate API docs using ** Swagger** , ** ReDoc** , or import into ** Postman** .
170210
171211---
172212
173- ## 🤝 Contributing
213+ ## 🧩 Sample ` .env ` File
214+
215+ ```
216+ SECRET_KEY=django-insecure-m72oe!!4!@1o)6b1-exojf1y1-4d+j%l+gmu5xv0dzf+a5ys$s
217+ DEBUG=True
218+
219+ DB_NAME=RO_db
220+ DB_USER=postgres
221+ DB_PASSWORD=root
222+ DB_HOST=127.0.0.1
223+ DB_PORT=5432
224+
225+ EMAIL_HOST=smtp.gmail.com
226+ EMAIL_PORT=587
227+ 228+ EMAIL_HOST_PASSWORD=test
229+ ```
230+
231+ SECRET_KEY=django-insecure-m72oe!!4!@1o )6b1-exojf1y1-4d+j%l+gmu5xv0dzf+a5ys$s
232+ DEBUG=True
233+
234+ DB_NAME=RO_db
235+ DB_USER=postgres
236+ DB_PASSWORD=root
237+ DB_HOST=127.0.0.1
238+ DB_PORT=5432
239+
240+ RATE_LIMIT_ANON=100/hour
241+ RATE_LIMIT_USER=1000/hour
174242
175- Pull requests are welcome! Please ensure your code follows linting rules enforced by ** pre-commit hooks** .
243+ EMAIL_HOST=smtp.gmail.com
244+ EMAIL_PORT=587
245+ 246+ EMAIL_HOST_PASSWORD=test
247+
248+ ```
176249
177250---
178251
179- ## 📜 License
252+ ## 🤝 Contributing
253+ Pull requests are welcome! Make sure all code follows linting rules enforced by **pre-commit hooks**.
254+
255+ ---
180256
257+ ## 📜 License
181258This project is licensed under the MIT License.
182259
183260---
184261
185262## 📞 Support
186-
187263For any queries or issues, feel free to raise an issue in the repository.
264+
265+ ```
0 commit comments