Skip to content

Commit a4b13b1

Browse files
authored
Update README.md
1 parent 7ad2264 commit a4b13b1

File tree

1 file changed

+57
-23
lines changed

1 file changed

+57
-23
lines changed

README.md

Lines changed: 57 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,60 @@
1-
# GptMap
2-
Crafted a map search app using Kotlin and Jetpack Compose. The app boasts a modular architecture, dynamic UI, secure user data handling, and efficient dependency injection. It integrates various APIs and advanced graphics, ensuring a smooth user experience.
1+
<h1 align="center">Gptmap🗺️🤖</h1>
2+
<p align="center">Welcome to Gptmap, a startup project crafted using Kotlin and Jetpack Compose.</p>
3+
<p align="center" text-align="center">This project will guide you through creating a comprehensive Android application using a modern toolkit, highlighting the integration of AI technologies and illustrating the real-world applications of these advanced technologies, providing valuable insights and best practices.</p>
34

4-
Demo: [Gptmap-Demo](https://drive.google.com/file/d/1gCmDmGglGuZJ5VTG2jt_mFadUiBiQuKd/view?usp=sharing)
5+
![feature_3](https://github.com/f-arslan/GptMap/assets/66749900/f648ad24-ffef-46b6-ac39-c3d7584694ab)
56

6-
## Key Technologies:
7+
## Download
8+
Go to the [Releases](https://github.com/f-arslan/GptMap/releases) to download the latest APK.
79

8-
- Kotlin
9-
- Jetpack Compose (custom composables and animations)
10-
- Ktor
11-
- MongoDB (Realm, Database, and JWT Auth)
12-
- Firestore and Storage
13-
- Firebase Auth (Email & Password - Gmail)
14-
- Dagger2, Hilt, Koin
15-
- Google Maps API
16-
- Third-party APIs (Gemini, Palm, Chatgpt, Unsplash)
17-
- Coil, Lottie
18-
- Kotlin Symbol Processing (KSP)
19-
- Model-View-ViewModel (MVVM) and Model-View-Intent (MVI) patterns
20-
- Coroutines
21-
- ViewModel
22-
- Retrofit
23-
- Docker
24-
- GCP Secret Manager
25-
- Testing (JUnit 4 - JUnit 5 - Mockk - turbine)
26-
- Linting (Detekt)
10+
## Tech Stack & Open-source Libraries
11+
12+
- **[Kotlin](https://kotlinlang.org/)**: The primary language for application development, emphasizing safety, simplicity, and interoperability.
13+
- **[Jetpack Compose](https://developer.android.com/jetpack/compose)**: Used for modern UI development, leveraging custom composables and animations for a dynamic and responsive design.
14+
- **Jetpack Libraries**:
15+
- **ViewModel**: Centralizes UI-related data management, making it resilient to configuration changes.
16+
- **Lifecycle**: Observes component lifecycles to ensure appropriate UI actions are taken at each stage.
17+
- **SavedStateHandle**: Enhances state management by preserving UI data across system-initiated process terminations.
18+
- **DataStore**: A modern data storage solution that utilizes Kotlin coroutines and Flow to store data asynchronously, securely, and consistently, serving as a replacement for SharedPreferences.
19+
- **[Ktor](https://ktor.io/)**: Enables server and client-side HTTP communications, seamlessly integrating with various third-party APIs for extended functionality.
20+
- **Database and Storage Solutions**:
21+
- **MongoDB Realm**: Provides a robust local database and synchronization solutions, enabling efficient offline data access and seamless cloud integration. It also implements **JWT Authentication** for secure user authentication and data access.
22+
- **Firebase Firestore and Storage**: Facilitates real-time data synchronization and scalable cloud storage, ensuring smooth data operations and media management.
23+
- **Asynchronous Programming**:
24+
- **[Coroutines](https://github.com/Kotlin/kotlinx.coroutines)** and **[Flow](https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.flow/)**: Manage asynchronous tasks and streamline data stream processing, guaranteeing a smooth user experience.
25+
- **Authentication Systems**:
26+
- **Firebase Auth**: Offers support for diverse authentication mechanisms, including email & password and Gmail, ensuring secure user access and streamlined account management.
27+
- **[MongoDB Realm JWT Auth](https://www.mongodb.com/docs/atlas/app-services/authentication/custom-jwt/)**: Implements JSON Web Token (JWT) authentication to ensure secure and scalable user authentication within the MongoDB Realm ecosystem.
28+
- **Dependency Injection Frameworks**:
29+
- **[Dagger2](https://dagger.dev/)**, **[Hilt](https://dagger.dev/hilt/)**, and **[Koin](https://insert-koin.io/)**: Provide scalable and maintainable object creation and management, optimizing app architecture and development workflow.
30+
- **APIs & Services Integration**:
31+
- **Google Maps API**: Enhances app functionality with comprehensive mapping and location services.
32+
- **Third-party APIs (Gemini, Palm, ChatGPT, Unsplash)**: Enrich the application with a diverse range of services, including cryptocurrency data, AI-generated content, and high-quality images.
33+
- **Image Loading and Animation Libraries**:
34+
- **Coil**: Efficiently loads and displays images, optimizing memory and network usage.
35+
- **Lottie**: Implements complex animations sourced from JSON files, enriching the UI with engaging visuals.
36+
- **Material Design 3**: Adopts the latest Material Design guidelines for a cohesive, dynamic user interface and enhanced user experience, leveraging the newest components, theming, and layout principles.
37+
- **[Kotlin Symbol Processing (KSP)](https://github.com/google/ksp)**: Streamlines code generation and processing, enhancing development efficiency.
38+
- **WorkManager**: Manages background tasks and asynchronous operations, ensuring reliable execution under various system conditions.
39+
- **Architectural Patterns**:
40+
- **MVVM and MVI**: Adopt modern architectural patterns for a clean separation of concerns, facilitating the development of testable and maintainable code.
41+
- **Core Android Features**:
42+
- Utilizes Services, Broadcast Receivers, and Intents for robust background processing and inter-component communication.
43+
- **Project Organization**:
44+
- Implements a Multi Module Structure with a version catalogue, promoting modular development and easier dependency management.
45+
- **Networking**:
46+
- **[Retrofit](https://github.com/square/retrofit)**: Simplifies REST API communication, enhancing data exchange and integration.
47+
- **[Docker](https://www.docker.com/)**: Utilizes container technology for consistent development, testing, and deployment environments.
48+
- **Secure Management**:
49+
- **GCP Secret Manager**: Safeguards sensitive information, ensuring secure access and storage of secrets.
50+
- **Testing Suite**:
51+
- Employs **JUnit 4 & 5**, **[Mockk](https://mockk.io/)**, and **[turbine](https://github.com/cashapp/turbine)** for comprehensive testing across units and integration points.
52+
- **Code Quality Tools**:
53+
- **Detekt**: Monitors code quality and maintainability, enforcing best practices and coding standards.
54+
55+
### Architecture Overview
56+
![GptmapArchıtecture](https://github.com/f-arslan/GptMap/assets/66749900/22b127cc-a8e7-4937-89b1-86b4f05090e3)
57+
58+
<p>This project is designed following the principles of Clean Architecture, utilizing a multi-modular approach. It includes several layers, including the UI Layer, Domain Layer, Data Layer, and the backend, to ensure a solid separation of concerns and enhance maintainability.
59+
60+
For the backend, Ktor for server-side logic, MongoDB for database management (Realm Sync and Auth for synchronization and authentication), Firebase for authentication, storage, and real-time database capabilities (Auth, Storage, Firestore), and GCP's Secret Manager for secure management of secrets and API keys.</p>

0 commit comments

Comments
 (0)