Skip to content

Commit 23bb89c

Browse files
committed
Day 10: Updated Readme with Folder structure and freeze the requirements in txt file
1 parent c19a0fd commit 23bb89c

File tree

2 files changed

+93
-5
lines changed

2 files changed

+93
-5
lines changed

README.md

Lines changed: 59 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
1+
<<<<<<< Updated upstream
12
# Instagram Clone
3+
=======
4+
# Instagram Clone - User Microservice
5+
>>>>>>> Stashed changes
26
3-
A Django REST Framework microservice that handles all user-related functionalities similar to Instagram, including authentication, profiles, followers/following, blocking/muting, close friends, user settings, and permission management.
7+
A **Django REST Framework microservice** that handles all **user-related functionalities** similar to Instagram, including authentication, profiles, followers/following, blocking/muting, close friends, user settings, and role-based access control (RBAC). This microservice is built to be **scalable, modular, and microservice-ready**.
48

59
---
610

@@ -23,12 +27,12 @@ A Django REST Framework microservice that handles all user-related functionaliti
2327
- **List Following** (`FollowingView`)
2428
- **Follow/Unfollow Actions** (`FollowActionView`)
2529
- **Follow Requests** (`FollowRequestRespondView`)
26-
- Supports search and pagination.
30+
- Supports **search** and **pagination**.
2731

2832
### 4. Blocking & Muting
2933
- **Block Users** (`BlockedUser` / `BlockUserView`)
3034
- **Mute Users** (`MutedUser` / `MuteUserView`)
31-
- Granular mute options: posts and stories.
35+
- Granular mute options: **posts and stories**.
3236

3337
### 5. Close Friends
3438
- **Manage Close Friends** (`CloseFriend` / `CloseFriendView`)
@@ -79,12 +83,62 @@ A Django REST Framework microservice that handles all user-related functionaliti
7983

8084
---
8185

82-
## Pagination
83-
- All list endpoints (followers/following) use `DefaultPagination`.
86+
## Pagination & Search
87+
- All **list endpoints** (followers/following) use **`DefaultPagination`**.
8488
- Search query supported via `?search=<term>`.
8589

8690
---
8791

92+
## Notes
93+
- All non-public endpoints require authentication.
94+
- Privacy and visibility are enforced at the view-level using **DynamicPagePermission**.
95+
- RBAC allows admins to enable/disable features per URL without code changes.
96+
- Blocking and muting are supported at a granular level for posts and stories.
97+
98+
---
99+
100+
## Folder Structure
101+
102+
```text
103+
Instagram-Clone/ # Django project root
104+
105+
├── backend/
106+
│ ├── __init__.py
107+
│ ├── settings.py # Global settings (JWT, DRF, throttling, caching)
108+
│ ├── urls.py # Project-level URLs (admin + api)
109+
│ ├── asgi.py
110+
│ └── wsgi.py
111+
112+
├── api/ # API gateway layer
113+
│ ├── urls.py # Routes all app endpoints
114+
│ └── __init__.py
115+
116+
├── users/ # User domain microservice
117+
│ ├── models.py # User, Profile, Follow, Block, Mute, Settings
118+
│ ├── serializers.py
119+
│ ├── views.py
120+
│ ├── urls.py
121+
│ ├── tests/
122+
│ └── __init__.py
123+
124+
├── rbac/ # Role-Based Access Control
125+
│ ├── models.py # Role, PagePermission, UserPermission
126+
│ ├── serializers.py
127+
│ ├── permissions.py # DynamicPagePermission
128+
│ ├── views.py
129+
│ ├── urls.py
130+
│ └── __init__.py
131+
132+
├── core/ # Shared reusable components
133+
│ ├── models.py # TimeStampedModel
134+
│ ├── pagination.py # DefaultPagination
135+
│ ├── throttling.py # Custom throttle classes
136+
│ └── __init__.py
137+
138+
├── manage.py
139+
└── requirements.txt
140+
141+
88142
## Notes
89143
- All non-public endpoints require authentication.
90144
- Privacy and visibility are enforced at the view-level using `DynamicPagePermission`.

requirements.txt

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
asgiref==3.11.0
2+
attrs==25.4.0
3+
colorama==0.4.6
4+
dill==0.4.0
5+
Django==4.2
6+
django-cors-headers==4.9.0
7+
django-jazzmin==3.0.1
8+
djangorestframework==3.16.1
9+
djangorestframework_simplejwt==5.5.1
10+
drf-spectacular==0.29.0
11+
inflection==0.5.1
12+
iniconfig==2.3.0
13+
isort==6.1.0
14+
jsonschema==4.25.1
15+
jsonschema-specifications==2025.9.1
16+
mccabe==0.7.0
17+
packaging==25.0
18+
pillow==12.0.0
19+
platformdirs==4.5.0
20+
pluggy==1.6.0
21+
psycopg2-binary==2.9.11
22+
Pygments==2.19.2
23+
PyJWT==2.10.1
24+
pylint-plugin-utils==0.9.0
25+
pytest==9.0.2
26+
pytest-django==4.11.1
27+
python-decouple==3.8
28+
PyYAML==6.0.3
29+
referencing==0.37.0
30+
rpds-py==0.30.0
31+
sqlparse==0.5.3
32+
tomlkit==0.13.3
33+
tzdata==2025.2
34+
uritemplate==4.2.0

0 commit comments

Comments
 (0)