Skip to content

Commit 259a812

Browse files
Merge pull request #719 from Cairo-Squad/refactor/readme
refactor: refactored the readme file and enhance it.
2 parents 9d32636 + fe1ed01 commit 259a812

File tree

1 file changed

+216
-82
lines changed

1 file changed

+216
-82
lines changed

README.md

Lines changed: 216 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -1,85 +1,219 @@
1-
# 🎬 Cairo Squad – Movies App Preparation
1+
<p align="center">
2+
<img width="480" height="270" alt="cover" src="https://github.com/user-attachments/assets/bc8f4631-309f-4011-b0ac-bccb3dbff243" />
3+
<p align="center">
4+
Movio is an Android app designed for movie and TV enthusiasts. It lets you discover and explore a vast collection of trending films and shows powered by The Movie Database (TMDb) API. With its modern and intuitive interface, Movio makes finding your next watch simple and enjoyable. Whether you’re in the mood for a blockbuster or a hidden gem, Movio is your go-to companion for everything movies and TV.
5+
</p>
6+
<br>
7+
</p>
8+
9+
## Architecture
10+
This project is built using Multi-module architecture (modularization by component)
11+
<img width="1483" height="580" alt="by_component (1)" src="https://github.com/user-attachments/assets/e02974f9-2570-4815-be1e-a789c660af5c" />
12+
13+
14+
## Technologies
15+
> [!TIP]
16+
> - Jetpack Compose
17+
> - Room Database
18+
> - Paging3
19+
> - Dagger/hilt
20+
> - Firebase (Analytic & Crashlytics)
21+
> - Firebase ML kit
22+
> - Retrofit & Okhttp
23+
> - Coil
24+
> - Lottie Compose
25+
> - Compose Navigation 2
26+
> - Deep Link
27+
28+
## Features
29+
### OnBoarding
30+
| On Boarding 1 | On Boarding 2 |
31+
|------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------|
32+
| <img width="384" height="776" alt="Pixel 9 Pro" src="https://github.com/user-attachments/assets/653718dd-62e1-4c0e-8186-4ed461f08bef" /> | <img width="384" height="776" alt="on boarding 2" src="https://github.com/user-attachments/assets/b7562f07-fab5-4015-8fb6-89ef2a91d5cd" /> |
33+
34+
35+
### Authentication
36+
| Login | Sign up | Forget Password |
37+
|------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------|
38+
| <img width="384" height="776" alt="login" src="https://github.com/user-attachments/assets/ba74151f-60b0-4294-8be8-809cc1bde3ca" /> | <img width="384" height="776" alt="signup" src="https://github.com/user-attachments/assets/d1b1d4cd-3fcb-4274-bf69-2a78167e1bb8" /> | <img width="384" height="776" alt="forget password" src="https://github.com/user-attachments/assets/aa73f59e-8c63-4bb6-9d37-c0c70e276fc1" /> |
39+
> [!Note]
40+
>
41+
> - **Login**: So you can login to your TMDB account.
42+
> - **Sign up**: So you can create new account if you don't have one yet.
43+
> - **Forget Password**: So you can easily restore your password if you forgot it.
44+
45+
46+
### Home Screen
47+
| Home Movies | Home Tv Shows | Home Categories |
48+
|------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------|
49+
| <img width="384" height="776" alt="home movies" src="https://github.com/user-attachments/assets/155c55a2-2f44-4a46-9be2-833ecd484a38" /> | <img width="384" height="776" alt="home tv shows" src="https://github.com/user-attachments/assets/96c36a18-90b1-47a9-a669-d5343ac283b4" /> | <img width="384" height="776" alt="home categories" src="https://github.com/user-attachments/assets/3aeb7925-3c30-406d-8c91-9616d804f877" /> |
50+
> [!Note]
51+
>
52+
> - **Top Rating**: Displays the top rated movies/tv shows for you.
53+
> - **Now Playing**: Displays all new movies/tv shows.
54+
> - **Upcoming**: Displays the new movies/tv shows that are going to be released soon.
55+
> - **More Recommended**: Displays recommended movies/tv shows based on your taste.
56+
57+
58+
### Search
59+
| Explore | Search | Search Results | For You |
60+
|--------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------|
61+
| <img width="384" height="776" alt="explore" src="https://github.com/user-attachments/assets/2509847a-72fc-4af4-bf33-5d5c817b3704" /> | <img width="384" height="776" alt="search" src="https://github.com/user-attachments/assets/14f28034-222b-403c-8b7c-98461b5b420f" /> | <img width="384" height="776" alt="search results" src="https://github.com/user-attachments/assets/d00dd1d0-f309-4a3f-958c-4c42508d5bf9" /> | <img width="384" height="776" alt="for you" src="https://github.com/user-attachments/assets/cefc37c0-d3ba-47e0-95c4-9040943948a5" /> |
62+
> [!Note]
63+
>
64+
> - Displays personalized movies and tv shows based on your previous watch history.
65+
> - Recommend some new trending and top rated movies and tv shows.
66+
> - Auto complete for your search results.
67+
> - Displays the search results for movies, tv shows and actors.
68+
69+
### Details Screens
70+
#### Movie Details:
71+
> **_Displays all the details about the movie and you can share it with your friends._**
72+
<table>
73+
<thead>
74+
<tr>
75+
<th>Movies Details 1</th>
76+
<th>Movie Details 2</th>
77+
<th>Similar Movies</th>
78+
</tr>
79+
</thead>
80+
<tbody>
81+
<tr>
82+
<td>
83+
<img width="384" height="776" alt="movie details 1" src="https://github.com/user-attachments/assets/0345079a-51f2-4e73-929a-42f63ca5f86a" />
84+
</td>
85+
<td>
86+
<img width="384" height="776" alt="movie details 2" src="https://github.com/user-attachments/assets/96653772-200e-432f-aceb-af6c6085972b" />
87+
</td>
88+
<td>
89+
<img width="384" height="776" alt="similar movies" src="https://github.com/user-attachments/assets/72c8c7e0-f291-4e49-b6a1-65fde26f2ea6" />
90+
</td>
91+
</tr>
92+
</tbody>
93+
</table>
94+
95+
> [!Note]
96+
>
97+
> - **Basic Details**: Displays the movie details and every thing related to it.
98+
> - **Similar Movies**: Displays similar movies, the actors whom worked in this project.
99+
100+
101+
#### TV Show Details:
102+
> **_Displays all the details about the tv show and you can share it with your friends._**
103+
<table>
104+
<thead>
105+
<tr>
106+
<th>Tv show details 1</th>
107+
<th>Tv show details 2</th>
108+
<th>Seasons</th>
109+
<th>Episodes</th>
110+
<th>Similar Tv shows</th>
111+
</tr>
112+
</thead>
113+
<tbody>
114+
<tr>
115+
<td>
116+
<img width="384" height="776" alt="tv show details 1" src="https://github.com/user-attachments/assets/34069c2e-4a62-4596-9ea3-5124d29db77e" />
117+
</td>
118+
<td>
119+
<img width="384" height="776" alt="tv show details 2" src="https://github.com/user-attachments/assets/81848a33-b641-49d8-bd95-c82bee3e1ed4" />
120+
</td>
121+
<td>
122+
<img width="384" height="776" alt="seasons" src="https://github.com/user-attachments/assets/07a23403-c3f3-4156-baff-b1c09b14d386" />
123+
</td>
124+
<td>
125+
<img width="384" height="776" alt="episodes" src="https://github.com/user-attachments/assets/88f7323d-868f-4eae-a3fc-6f32bc4c57c1" />
126+
</td>
127+
<td>
128+
<img width="384" height="776" alt="similar tv shows" src="https://github.com/user-attachments/assets/1c26a317-5ec0-48a7-bdab-8dd041e18e96" />
129+
</td>
130+
</tr>
131+
</tbody>
132+
</table>
133+
134+
> [!Note]
135+
>
136+
> - **Basic Details**: Displays the tv show details and every thing related to it.
137+
> - **Similar Movies**: Displays similar tv shows, the actors whom worked in this project and also it's seasons.
138+
> - **Seasons**: You can select easily the season you want to watch.
139+
> - **Episode**: Displays all the episodes that is inside this season.
140+
141+
142+
143+
### Library:
144+
| Library (Guest) | Library (Logged In) | Lists | Favorites | History |
145+
|--------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------|
146+
| <img width="384" height="776" alt="library guest" src="https://github.com/user-attachments/assets/3d824337-3c81-4643-8350-51c59ecdd577" /> | <img width="384" height="776" alt="library logged in" src="https://github.com/user-attachments/assets/16e24d73-b185-4e8b-92d8-8ec00d2fca87" /> | <img width="384" height="776" alt="lists" src="https://github.com/user-attachments/assets/1a02fad9-bacb-4849-be9c-d4a943a4a815" /> | <img width="384" height="776" alt="favorites" src="https://github.com/user-attachments/assets/1277192e-4d8c-4a53-be03-e93f616b9563" /> | <img width="384" height="776" alt="history" src="https://github.com/user-attachments/assets/50438e46-fd06-4abf-9cf4-db8c18c777f1" /> |
147+
> [!Note]
148+
>
149+
> - Displays all of your lists, favorite items and your watch history.
150+
> - Check the lists you have and the items inside of it.
151+
> - Display all of your favorite movies and tv shows.
152+
> - Display your watch history for everything you have watched.
153+
154+
155+
156+
157+
### Profile Screen:
158+
| Profile (Guest) | Profile (Logged In) | Theme Switch | Language Change |
159+
|--------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------|
160+
| <img width="384" height="776" alt="profile guest" src="https://github.com/user-attachments/assets/e5b380b2-8acb-4b26-bffb-ac2c5f59f21c" /> | <img width="384" height="776" alt="profile logged in" src="https://github.com/user-attachments/assets/cf490858-d0b4-4c5b-aa79-d31dfd8b0c50" /> | <img width="384" height="776" alt="change theme" src="https://github.com/user-attachments/assets/d96e373a-7f5d-4bc0-949a-f94e8d1cfa73" /> | <img width="384" height="776" alt="change language" src="https://github.com/user-attachments/assets/352b90f3-fa09-4691-b9bb-b1407c95b167" /> |
161+
> [!Note]
162+
>
163+
> - You displays your image and user name.
164+
> - Can change the application theme to light or dark.
165+
> - Can switch easily the language of the application to arabic or english.
166+
167+
168+
169+
### My Ratings:
170+
| Rating Empty | Rating filled |
171+
|-------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------|
172+
| <img width="384" height="776" alt="rating empty" src="https://github.com/user-attachments/assets/1b254e9e-0e93-4d87-8956-d2477f96d783" /> | <img width="384" height="776" alt="rating filled" src="https://github.com/user-attachments/assets/40206fd6-abc6-4ddc-934e-3b00abc0b5ca" /> |
173+
> [!Note]
174+
>
175+
> - You can easily know what series or movies you have rated.
176+
> - Easily to remove the item you don't want by swiping it.
177+
178+
179+
180+
### Islamic Image Viewer:
181+
| Islamic Image Viewer |
182+
|---------------------------------------------------------------------------------------------------------------------------------------------------|
183+
| <img width="384" height="776" alt="islamic image viewer" src="https://github.com/user-attachments/assets/2a9af823-1869-4990-a0cf-905b17bbc379" /> |
184+
> [!Note]
185+
>
186+
> - AI-driven content detection aligned with Islamic guidelines
187+
> - Intelligent image blurring for sensitive material
188+
> - Coil-based image loading with customizable transformations
189+
> - Adjustable sensitivity settings
2190
3-
Welcome to our Movies app project!
4-
We are **Cairo Squad** (part of the Movio team), and this README outlines the setup and responsibilities we've taken on during the preparation phase.
5191

6192
---
7-
8-
## ✅ What We've Done
9-
10-
### 🧱 Modularization: By Component
11-
12-
We followed the **By Component** structure:
13-
Each part of the app (e.g., networking, UI components, image loader) is separated into reusable modules.
14-
15-
Examples:
16-
- `core_networking`
17-
- `core_ui`
18-
- `safe_image_viewer`
19-
- `feature_home`
20-
21-
---
22-
23-
### 🎨 Design System: Movio
24-
25-
As part of the **Movio** team, we implemented the **Movio design system** in a separate `design_system` module.
26-
27-
✅ Presentation modules **only depend on `design_system`**.
28-
🚫 We did **not** add Material 3 directly to any screen.
29-
30-
---
31-
32-
### 🔥 Firebase Setup
33-
34-
We integrated the following Firebase tools into the app:
35-
36-
- App Performance Monitoring
37-
- Analytics
38-
- Crashlytics
39-
40-
---
41-
42-
### ⚙️ CI/CD Setup
43-
44-
#### ✅ CI (Continuous Integration)
45-
46-
- Checks that the project **builds** before merging into `develop`.
47-
- Ensures **test coverage is above 80%** — otherwise, merging is blocked.
48-
49-
#### 🚀 CD (Continuous Deployment)
50-
51-
- When a PR is approved and merged into `develop`, a new **APK/app bundle** is automatically built and uploaded to **Firebase App Distribution**.
52-
53-
---
54-
55-
## ⭐ Extra Work: Custom Image Viewer
56-
57-
We created a new module: `safe_image_viewer`
58-
59-
- Built on top of **Coil**
60-
- Exposes a single `Image` composable
61-
- Uses on-device ML to **blur inappropriate content** (based on Islamic culture)
62-
63-
---
64-
65-
## 🧰 Libraries We Used
66-
67-
| Purpose | Library |
68-
|----------------------|---------------|
69-
| Networking | ktor |
70-
| Dependency Injection | Dagger & Hilt |
71-
| Navigation | Navigation 2 |
72-
| Image Loading | Coil |
73-
74-
---
75-
76-
## 🧠 Notes
77-
78-
- We focused only on the required tasks.
79-
- Some teammates didn’t have tasks this week — and that’s totally okay.
80-
- Code is clean, modular, and ready for feature development.
81-
82-
---
83-
84-
### 🏁 We're ready for the next sprint!
85-
**– Cairo Squad 🚀**
193+
## Installation
194+
1- Clone the Repository
195+
```
196+
git clone https://github.com/Cairo-Squad/Movio
197+
```
198+
2- open the project in android studio.
199+
3- Add the required parameters in `local.properties` file.
200+
**Add required properties**
201+
In the project root, open or create a `local.properties` file and add the following:
202+
203+
```properties
204+
IMAGE_BASE_URL="https://image.tmdb.org/t/p/w500/"
205+
BASE_URL = "https://api.themoviedb.org/3/"
206+
API_KEY = "You Own API Key"
207+
```
208+
> To obtain your `YOUR_API_KEY`:
209+
>
210+
> 1. Create an account at [The Movie Database (TMDB)](https://www.themoviedb.org/signup)
211+
> 2. Go to **Settings → API** in your TMDB account
212+
> 3. Generate a **API Key** and paste it as `apiKey` above.
213+
214+
4- Build and run the project on an emulator or physical device.
215+
216+
## Contributors
217+
<a href="https://github.com/Cairo-Squad/Movio/graphs/contributors">
218+
<img src="https://contrib.rocks/image?repo=Cairo-Squad/Movio" />
219+
</a>

0 commit comments

Comments
 (0)