Skip to content

Commit 6f2c60e

Browse files
Merge branch 'Cairo-Squad:develop' into develop
2 parents ed635a2 + 31eddbd commit 6f2c60e

File tree

18 files changed

+471
-20
lines changed

18 files changed

+471
-20
lines changed

.github/workflows/android-ci.yml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,14 @@ jobs:
2929
with:
3030
distribution: 'zulu'
3131
java-version: ${{ env.JAVA_VERSION }}
32-
32+
- name: Create google-services.json
33+
env:
34+
GOOGLE_SERVICES_JSON_BASE64: ${{ secrets.GOOGLE_SERVICES_JSON_BASE64 }}
35+
run: |
36+
mkdir -p composeApp/
37+
mkdir -p composeApp/src/debug/
38+
echo "$GOOGLE_SERVICES_JSON_BASE64" | base64 --decode > composeApp/google-services.json
39+
cp composeApp/google-services.json composeApp/src/debug/google-services.json
3340
- name: Build Android App
3441
run: ./gradlew :composeApp:assembleDebug
3542

.github/workflows/cd-firebase.yml

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
name: EvolveFit CD Pipeline
2+
on:
3+
push:
4+
branches:
5+
- main
6+
- develop
7+
8+
jobs:
9+
deploy:
10+
runs-on: ubuntu-latest
11+
12+
steps:
13+
- name: Checkout code
14+
uses: actions/checkout@v4
15+
with:
16+
fetch-depth: 0
17+
18+
- name: Set up JDK
19+
uses: actions/setup-java@v4
20+
with:
21+
distribution: 'zulu'
22+
java-version: '21'
23+
24+
- name: Cache Gradle
25+
uses: actions/cache@v4
26+
with:
27+
path: |
28+
~/.gradle/caches
29+
~/.gradle/wrapper
30+
key: gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
31+
restore-keys: |
32+
gradle-${{ runner.os }}-
33+
34+
- name: Make gradlew executable
35+
run: chmod +x ./gradlew
36+
37+
- name: Create google-services.json
38+
env:
39+
GOOGLE_SERVICES_JSON_BASE64: ${{ secrets.GOOGLE_SERVICES_JSON_BASE64 }}
40+
run: |
41+
mkdir -p composeApp/
42+
echo "$GOOGLE_SERVICES_JSON_BASE64" | base64 --decode > composeApp/google-services.json
43+
echo "$GOOGLE_SERVICES_JSON_BASE64" | base64 --decode > composeApp/google-services.json
44+
shell: bash
45+
46+
- name: Decode Keystore and Create local.properties
47+
env:
48+
KEYSTORE: ${{ secrets.KEYSTORE }}
49+
KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }}
50+
KEY_ALIAS: ${{ secrets.KEY_ALIAS }}
51+
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
52+
run: |
53+
rm -f composeApp/JKS.jks local.properties release_notes.txt
54+
echo "$KEYSTORE" | base64 -d > composeApp/JKS.jks
55+
echo "KEYSTORE_PASSWORD = $KEYSTORE_PASSWORD" >> local.properties
56+
echo "KEY_ALIAS = $KEY_ALIAS" >> local.properties
57+
echo "KEY_PASSWORD = $KEY_PASSWORD" >> local.properties
58+
59+
- name: Generate Signed APK
60+
run: |
61+
./gradlew assembleRelease --build-cache -x test -x lint
62+
63+
- name: Find APKs
64+
run: |
65+
echo "Searching for APKs..."
66+
find . -type f -name "*.apk"
67+
68+
- name: Create Release Notes
69+
run: |
70+
echo "Automated build from GitHub Actions on $(date)" > release_notes.txt
71+
72+
- name: Upload APKs to Firebase App Distribution
73+
env:
74+
FIREBASE_APP_ID: ${{ secrets.FIREBASE_APP_ID }}
75+
FIREBASE_AUTH_TOKEN: ${{ secrets.FIREBASE_AUTH_TOKEN }}
76+
run: |
77+
npm install -g firebase-tools
78+
firebase appdistribution:distribute \
79+
composeApp/build/outputs/apk/release/composeApp-release.apk \
80+
--app "$FIREBASE_APP_ID" \
81+
--token "$FIREBASE_AUTH_TOKEN" \
82+
--groups "cairo_squad" \
83+
--release-notes-file release_notes.txt

README.md

Lines changed: 253 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,257 @@
1-
This is a Kotlin Multiplatform project targeting Android, iOS.
1+
# 💪 EvolveFit
22

3-
* `/composeApp` is for code that will be shared across your Compose Multiplatform applications.
4-
It contains several subfolders:
5-
- `commonMain` is for code that’s common for all targets.
6-
- Other folders are for Kotlin code that will be compiled for only the platform indicated in the folder name.
7-
For example, if you want to use Apple’s CoreCrypto for the iOS part of your Kotlin app,
8-
`iosMain` would be the right folder for such calls.
3+
<div align="center">
94

10-
* `/iosApp` contains iOS applications. Even if you’re sharing your UI with Compose Multiplatform,
11-
you need this entry point for your iOS app. This is also where you should add SwiftUI code for your project.
5+
![EvolveFit Banner](https://github.com/user-attachments/assets/a05dd70d-5fa4-46e7-b1cf-ad426dd38e30)
126

7+
**🏋️ A comprehensive gym tracking app built with Kotlin Multiplatform**
8+
*Track workouts • Monitor progress • Achieve your fitness goals*
139

14-
Learn more about [Kotlin Multiplatform](https://www.jetbrains.com/help/kotlin-multiplatform-dev/get-started.html)
10+
[![Kotlin](https://img.shields.io/badge/Kotlin-Multiplatform-7F52FF?style=for-the-badge&logo=kotlin)](https://kotlinlang.org)
11+
[![Compose](https://img.shields.io/badge/Compose-Multiplatform-4285F4?style=for-the-badge&logo=jetpackcompose)](https://www.jetbrains.com/compose/)
12+
[![License](https://img.shields.io/badge/License-MIT-00C851?style=for-the-badge)](LICENSE)
13+
[![Contributors](https://img.shields.io/badge/Contributors-Welcome-FF6B6B?style=for-the-badge)](https://github.com/Cairo-Squad/EvolveFit/graphs/contributors)
14+
15+
</div>
16+
17+
---
18+
19+
## 🏗️ Architecture & Technology Stack
20+
21+
<div align="center">
22+
23+
**Built with modern technologies for optimal performance**
24+
25+
</div>
26+
27+
### 🔧 Core Technologies
28+
```
29+
🎯 Kotlin Multiplatform (KMP) 📱 Compose Multiplatform
30+
🗄️ Room Database 🔗 Koin Dependency Injection
31+
🖼️ Coil Image Loading 🌐 Ktor Networking
32+
🧭 Type-Safe Navigation 2
33+
```
34+
35+
---
36+
37+
## ✨ Features Overview
38+
39+
### 🚀 **OnBoarding Experience**
40+
<div align="center">
41+
<img width="300" height="600" alt="OnBoarding Screen" src="https://github.com/user-attachments/assets/f0351615-99cd-4202-9f9b-2622c7917d02" />
42+
</div>
43+
44+
### 🔐 **Seamless Authentication**
45+
<div align="center">
46+
<img width="250" height="540" alt="Registration Step 1" src="https://github.com/user-attachments/assets/755ed781-e893-457f-ab76-9a3582237834" />
47+
<img width="250" height="540" alt="Registration Step 2" src="https://github.com/user-attachments/assets/04af8d4b-b00c-4c84-b9b5-dacf7fd44faf" />
48+
<img width="250" height="540" alt="Registration Step 3" src="https://github.com/user-attachments/assets/72c1126c-b126-4a88-954e-ba44307ee784" />
49+
</div>
50+
51+
### 🏠 **Smart Home Dashboard**
52+
<div align="center">
53+
<img width="300" height="600" alt="Home Screen" src="https://github.com/user-attachments/assets/1405881a-5f36-4dcb-9f04-2ebc75f9ed4b" />
54+
</div>
55+
56+
> **🎯 Key Features:**
57+
> - **📊 Weekly Progress** - Visualize your workout journey over time
58+
> - **🍎 Today's Nutrition** - Monitor water intake and calorie consumption
59+
> - **✨ Personalized Workouts** - AI-curated routines tailored to your goals
60+
61+
---
62+
63+
## 🥗 Nutrition Tracking
64+
65+
<div align="center">
66+
67+
**Complete nutrition management at your fingertips**
68+
69+
<img width="250" height="540" alt="Nutrition Overview" src="https://github.com/user-attachments/assets/4b1dfa38-0593-444d-8515-7cdd153a06f5" />
70+
<img width="250" height="540" alt="Add Meal" src="https://github.com/user-attachments/assets/59ef9705-181e-4d17-ae85-425dd410163f" />
71+
<img width="250" height="540" alt="Water Tracking" src="https://github.com/user-attachments/assets/e14967c6-2d04-4885-8526-5594bd1e4a93" />
72+
73+
</div>
74+
75+
### 🍽️ **Smart Meal Suggestions**
76+
77+
<div align="center">
78+
79+
<img width="300" height="600" alt="Suggested Meals" src="https://github.com/user-attachments/assets/6f91196e-70db-4151-886d-f40c8ce81a7d" />
80+
81+
**📋 Detailed Meal Information**
82+
83+
<img width="300" height="600" alt="Meal Details" src="https://github.com/user-attachments/assets/408e67c3-a73d-4201-9df4-0da81b5dfb15" />
84+
85+
</div>
86+
87+
---
88+
89+
## 💪 Workout Management
90+
91+
<div align="center">
92+
93+
**Your personal trainer in your pocket**
94+
95+
</div>
96+
97+
<table align="center">
98+
<tr>
99+
<td align="center">
100+
<img width="200" height="400" alt="Workout Home" src="https://github.com/user-attachments/assets/18a2acf4-9858-4361-8511-493e33703247" />
101+
<br><b>📋 Workout Plans</b>
102+
</td>
103+
<td align="center">
104+
<img width="200" height="400" alt="Exercise List" src="https://github.com/user-attachments/assets/b6e6b621-55e2-45e2-b868-43e38abe110d" />
105+
<br><b>🏃 Exercise Library</b>
106+
</td>
107+
<td align="center">
108+
<img width="200" height="400" alt="Exercise Details" src="https://github.com/user-attachments/assets/06d15897-bd7f-4446-922d-c934ba7c13ec" />
109+
<br><b>📖 Exercise Guide</b>
110+
</td>
111+
</tr>
112+
<tr>
113+
<td align="center">
114+
<img width="200" height="400" alt="Workout Progress" src="https://github.com/user-attachments/assets/78c19172-7618-4f32-aaec-eb1ce8b922c2" />
115+
<br><b>📈 Progress Tracking</b>
116+
</td>
117+
<td align="center">
118+
<img width="200" height="400" alt="Workout Timer" src="https://github.com/user-attachments/assets/597e3a1a-f190-46f7-883b-51dcd69e1ba6" />
119+
<br><b>⏱️ Workout Timer</b>
120+
</td>
121+
</tr>
122+
</table>
123+
124+
---
125+
126+
## 👤 Profile & Customization
127+
128+
<div align="center">
129+
130+
**Personalize your fitness experience**
131+
132+
</div>
133+
134+
<table align="center">
135+
<tr>
136+
<td align="center">
137+
<img width="200" height="400" alt="Profile Menu" src="https://github.com/user-attachments/assets/a3c2ece1-a26c-42e0-b986-2eb0b582bff1" />
138+
<br><b>⚙️ Settings Hub</b>
139+
</td>
140+
<td align="center">
141+
<img width="200" height="400" alt="Profile Details" src="https://github.com/user-attachments/assets/fd3eca99-440c-4b84-8f67-4dd958667366" />
142+
<br><b>👤 Profile Info</b>
143+
</td>
144+
<td align="center">
145+
<img width="200" height="400" alt="Dark Theme" src="https://github.com/user-attachments/assets/22e10a4c-5cb1-404a-9299-aed19e95fb88" />
146+
<br><b>🌙 Dark Theme</b>
147+
</td>
148+
<td align="center">
149+
<img width="200" height="400" alt="Light Theme" src="https://github.com/user-attachments/assets/860e23d5-e406-4f5c-a3fe-bb4ea001f650" />
150+
<br><b>☀️ Light Theme</b>
151+
</td>
152+
</tr>
153+
</table>
154+
155+
---
156+
157+
## 🚀 Getting Started
158+
159+
<div align="center">
160+
161+
**Ready to transform your fitness journey?**
162+
163+
</div>
164+
165+
### 📥 **Installation Steps**
166+
167+
```bash
168+
# 1️⃣ Clone the repository
169+
git clone https://github.com/Cairo-Squad/EvolveFit.git
170+
171+
# 2️⃣ Open in Android Studio
172+
# Launch Android Studio and open the project
173+
174+
# 3️⃣ Configure environment
175+
# Add required parameters in local.properties file
176+
177+
# 4️⃣ Build and run
178+
# Deploy to emulator or physical device
179+
```
180+
181+
---
182+
183+
## 🤝 Join Our Community
184+
185+
<div align="center">
186+
187+
**Help us make fitness accessible for everyone!**
188+
189+
[![Contributors Welcome](https://img.shields.io/badge/Contributors-Welcome-00C851?style=for-the-badge&logo=github)](CONTRIBUTING.md)
190+
[![Good First Issues](https://img.shields.io/badge/Good_First_Issues-Available-4285F4?style=for-the-badge&logo=github)](https://github.com/Cairo-Squad/EvolveFit/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
191+
[![Discord](https://img.shields.io/badge/Join_Our-Discord-7289DA?style=for-the-badge&logo=discord)](https://discord.gg/your-discord)
192+
193+
</div>
194+
195+
### 🛠️ **How to Contribute**
196+
197+
<div align="center">
198+
199+
```mermaid
200+
graph LR
201+
A[🍴 Fork] --> B[🌿 Branch]
202+
B --> C[💾 Commit]
203+
C --> D[📤 Push]
204+
D --> E[🎯 PR]
205+
style A fill:#FF6B6B
206+
style B fill:#4ECDC4
207+
style C fill:#45B7D1
208+
style D fill:#96CEB4
209+
style E fill:#FFEAA7
210+
```
211+
212+
</div>
213+
214+
1. **🍴 Fork** the repository to your GitHub account
215+
2. **🌿 Create** your feature branch (`git checkout -b feature/amazing-feature`)
216+
3. **💾 Commit** your changes with descriptive messages
217+
4. **📤 Push** to your forked repository
218+
5. **🎯 Open** a Pull Request with detailed description
219+
220+
---
221+
222+
## 👥 Meet Our Team
223+
224+
<div align="center">
225+
226+
[![Contributors](https://contrib.rocks/image?repo=Cairo-Squad/EvolveFit)](https://github.com/Cairo-Squad/EvolveFit/graphs/contributors)
227+
228+
**💖 Made with passion by the Cairo Squad**
229+
*Dedicated developers revolutionizing fitness technology*
230+
231+
</div>
232+
233+
---
234+
235+
## 🌟 Show Your Support
236+
237+
<div align="center">
238+
239+
**Love EvolveFit? Show us some love!**
240+
241+
[![GitHub stars](https://img.shields.io/github/stars/Cairo-Squad/EvolveFit?style=for-the-badge&logo=github&color=FFD700)](https://github.com/Cairo-Squad/EvolveFit)
242+
[![GitHub forks](https://img.shields.io/github/forks/Cairo-Squad/EvolveFit?style=for-the-badge&logo=github&color=32CD32)](https://github.com/Cairo-Squad/EvolveFit/network)
243+
[![GitHub watchers](https://img.shields.io/github/watchers/Cairo-Squad/EvolveFit?style=for-the-badge&logo=github&color=1E90FF)](https://github.com/Cairo-Squad/EvolveFit/watchers)
244+
245+
**⭐ Star this repository if it helped you on your fitness journey!**
246+
247+
<br>
248+
249+
*🚀 Evolving fitness technology, one commit at a time*
250+
251+
<br>
252+
253+
[![Built with Love](https://img.shields.io/badge/Built_with-❤️_&_☕-FF6B6B?style=flat-square)](https://github.com/Cairo-Squad/EvolveFit)
254+
[![Powered by Kotlin](https://img.shields.io/badge/Powered_by-Kotlin_Multiplatform-7F52FF?style=flat-square&logo=kotlin)](https://kotlinlang.org)
255+
[![Made in Cairo](https://img.shields.io/badge/Made_in-🏛️_Cairo-F39C12?style=flat-square)](https://en.wikipedia.org/wiki/Cairo)
256+
257+
</div>

build.gradle.kts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ plugins {
66
alias(libs.plugins.composeMultiplatform) apply false
77
alias(libs.plugins.composeCompiler) apply false
88
alias(libs.plugins.kotlinMultiplatform) apply false
9+
alias(libs.plugins.googleFirebaseAppdistribution) apply false
10+
alias(libs.plugins.googleGmsGoogleServices) apply false
911
}
1012

1113
repositories {

0 commit comments

Comments
 (0)