Skip to content

MahabubKarim/SystemDesign101

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

System Design 101 (Bangla) 📚

An Android application built with modern development practices to help developers learn System Design in Bangla. The application scrapes and displays content from the System Design Bangla GitHub Page. Mobile App Version of lahin31

✨ Features

  • Topic Explorer: Browse through various System Design topics categorized by sections (e.g., Scaling, Database Indexing, Caching, etc.).
  • Detailed Reading: View comprehensive content for each topic with a clean reading experience.
  • Adaptive UI: Built with Jetpack Compose Adaptive components, offering a responsive List-Detail Pane layout that works seamlessly on phones, foldables, and tablets.
  • State Persistence: Handles process death and configuration changes gracefully using Parcelable navigation state.

🛠️ Tech Stack

🏗️ Architecture Overview

The project follows a modular and clean architecture pattern:

  • domain: Contains the business logic, including Model definitions and UseCases. Completely independent of Android and UI frameworks.
  • data: Implements the repository pattern, managing data sources (currently web scraping via Jsoup).
  • ui: Jetpack Compose-based UI layer.
    • screens: Contains Screen-level composables and their respective ViewModels and State holders.
    • theme: Material 3 theme configuration.

🚀 Getting Started

  1. Clone the repository.
  2. Open the project in Android Studio (Ladybug or newer).
  3. Sync the project with Gradle files.
  4. Run the app module on an emulator or a physical device.

📝 Performance Optimizations

  • Stability: UI State classes are annotated with @Immutable to help the Compose compiler optimize recompositions.
  • State Handling: ViewModels avoid direct @Stable or @Immutable annotations, letting Compose's Strong Skipping Mode handle it efficiently while keeping state logic robust.

🤝 Contribution

Contributions are welcome! If you find any issues or have suggestions for improvements, feel free to open a Pull Request.


About

This is an app version of https://lahin31.github.io/, which has parsed the content of the Github content and make it as an app to navigate properly.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages