KykScraped is a modern Android application that displays daily menu information for KYK (Credit and Dormitories Institution) dormitories in Turkey. The app allows users to check breakfast and dinner menus for different cities.
- 🏙️ View menus for 18 different cities across Turkey
- 🍳 Toggle between breakfast and dinner menus
- 📅 Display multiple days of menu information
- 🔄 Real-time data fetching via web scraping
- 🎨 Modern Material 3 UI with Jetpack Compose
- 📊 Calorie information for each menu (when available)
The application follows Clean Architecture principles with MVVM pattern:
KykScraped/
├── data/ # Data layer (APIs, DTOs, Repositories implementation)
├── domain/ # Domain layer (Business logic, Models, Use cases)
└── presentation/ # UI layer (Screens, ViewModels)
- Clean Architecture: Separation of concerns with three layers
- MVVM: Presentation layer pattern with ViewModels
- Dependency Injection: Using Hilt for DI
- Kotlin Coroutines: For async operations
- Jetpack Compose: For modern declarative UI
- Repository Pattern: For data abstraction
- Web Scraping: Using JSoup for HTML parsing
- Kotlin: Primary programming language
- Jetpack Compose: Modern UI toolkit
- Material 3: Design system
- Hilt: Dependency injection
- Ktor: Networking client
- JSoup: HTML parsing
- Coroutines: Asynchronous programming
- ViewModel: UI state management
- Flow: Reactive programming
- Android Studio Iguana | 2023.2.1 or newer
- Android SDK 35
- JDK 17 or newer
-
Clone the repository:
git clone https://github.com/tamersarioglu/kykscraped.git
-
Open the project in Android Studio
-
Sync Gradle files and build the project
-
Run the application on an emulator or physical device
The application uses the following configurations:
- minSdk: 24
- targetSdk: 35
- compileSdk: 35
├── app/
│ ├── src/
│ │ ├── main/
│ │ │ ├── java/com/tamersarioglu/kykscraped/
│ │ │ │ ├── data/
│ │ │ │ │ ├── mapper/
│ │ │ │ │ ├── model/
│ │ │ │ │ ├── remote/
│ │ │ │ │ └── repository/
│ │ │ │ ├── di/
│ │ │ │ ├── domain/
│ │ │ │ │ ├── model/
│ │ │ │ │ ├── repository/
│ │ │ │ │ ├── usecase/
│ │ │ │ │ └── util/
│ │ │ │ ├── presentation/
│ │ │ │ │ ├── menu/
│ │ │ │ └── ui/theme/
│ │ │ └── res/
- Select a city from the dropdown menu
- Toggle between breakfast and dinner menus using the switch
- View the daily menus for the selected city and meal type
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
- Tamer Sarioğlu - GitHub
- KYK for providing the menu data
- All the open-source libraries used in this project