diff --git a/README.md b/README.md index cc1fff9..5de049a 100644 --- a/README.md +++ b/README.md @@ -1,21 +1,66 @@ -This is a Kotlin Multiplatform project targeting Android, iOS, Web, Desktop. +# MeetMap 🌍 +**Π‘ΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ ΡΠ΅Ρ‚ΡŒ с ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠ΅ΠΉ ΠΊΠ°Ρ€Ρ‚ для планирования встрСч** -* `/composeApp` is for code that will be shared across your Compose Multiplatform applications. - It contains several subfolders: - - `commonMain` is for code that’s common for all targets. - - Other folders are for Kotlin code that will be compiled for only the platform indicated in the folder name. - For example, if you want to use Apple’s CoreCrypto for the iOS part of your Kotlin app, - `iosMain` would be the right folder for such calls. +[![Kotlin Multiplatform](https://img.shields.io/badge/Kotlin-Multiplatform-%237F52FF?logo=kotlin)](https://kotlinlang.org/docs/multiplatform.html) +[![Firebase](https://img.shields.io/badge/Firebase-Cloud_Service-%23FFCA28?logo=firebase)](https://firebase.google.com/) + +Π‘ΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ ΡΠ΅Ρ‚ΡŒ, Π³Π΄Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΎΡ‚ΠΌΠ΅Ρ‡Π°ΡŽΡ‚ мСста встрСч Π½Π° ΠΊΠ°Ρ€Ρ‚Π΅, ΠΎΠ±Ρ‰Π°ΡŽΡ‚ΡΡ Π² Ρ‡Π°Ρ‚Π°Ρ…, ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΌΠ΅Π΄ΠΈΠ° ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ Π΄Ρ€ΡƒΠ·ΡŒΡΠΌΠΈ. + +--- + +## ✨ ВозмоТности +- **ΠšΠ°Ρ€Ρ‚Π° с ΠΌΠ΅Ρ‚ΠΊΠ°ΠΌΠΈ** + ΠžΡ‚ΠΌΠ΅Ρ‡Π°ΠΉΡ‚Π΅ мСста встрСч, просматривайтС Π΄Π΅Ρ‚Π°Π»ΠΈ, ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡ‚Π΅ΡΡŒ ΠΊ событиям ΠΈ ΠΏΡ€ΠΎΠΊΠ»Π°Π΄Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Ρ‹. +- **Π§Π°Ρ‚Ρ‹** + Π›ΠΈΡ‡Π½Ρ‹Π΅ сообщСния, ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° Ρ„ΠΎΡ‚ΠΎ/Π²ΠΈΠ΄Π΅ΠΎ, Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ сообщСний. +- **Π”Ρ€ΡƒΠ·ΡŒΡ** + Поиск ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π² Π΄Ρ€ΡƒΠ·ΡŒΡ, просмотр послСдних сообщСний. +- **УвСдомлСния** + Π Π΅altime-оповСщСния ΠΎ событиях Ρ‡Π΅Ρ€Π΅Π· Firebase Cloud Messaging. + +--- + +## πŸ“Έ Π‘ΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Ρ‹ + +| ΠšΠ°Ρ€Ρ‚Π° с ΠΌΠ΅Ρ‚ΠΊΠ°ΠΌΠΈ | Π”Π΅Ρ‚Π°Π»ΠΈ ΠΌΠ΅Ρ‚ΠΊΠΈ | Бписок Π΄Ρ€ΡƒΠ·Π΅ΠΉ | +|-----------------|--------------|----------------| +| | | | + +| Π§Π°Ρ‚ с Π΄Ρ€ΡƒΠ·ΡŒΡΠΌΠΈ | Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ сообщСниями | +|---------------|------------------------| +| | | + +--- + +## πŸ›  Π’Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ + +### ΠšΠ»ΠΈΠ΅Π½Ρ‚ (Kotlin Multiplatform) +- **ΠšΠ°Ρ€Ρ‚Ρ‹**: Google Maps SDK + [кастомная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° MapMarker](https://github.com/ILYAPROKOFEV101/mapmarker) для Π°Π½ΠΈΠΌΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠΊ +- **API**: Ktor Client, Retrofit, OkHttp +- **Π‘Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ…**: SQLDelight (ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…) +- **АрхитСктура**: MVVM с ΠΎΠ±Ρ‰ΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ для iOS/Android + +### Π‘Π΅Ρ€Π²Π΅Ρ€ +- **Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ**: Ktor (REST API + WebSockets) +- **АутСнтификация**: Firebase Admin +- **Π‘Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…**: PostgreSQL (основныС Π΄Π°Π½Π½Ρ‹Π΅), Redis (кСш ΠΈ сСссии) +- **Π₯остинг**: Railway + +### Π˜Π½Ρ„Ρ€Π°ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° +- **УвСдомлСния**: Firebase Cloud Messaging +- **ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³**: Sentry, Firebase Crashlytics + +--- + +## πŸ— АрхитСктура +**MVVM** + **Kotlin Multiplatform** +- ΠžΠ±Ρ‰ΠΈΠΉ ΠΊΠΎΠ΄ для бизнСс-Π»ΠΎΠ³ΠΈΠΊΠΈ (70% ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ‹) +- ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠ·Π°Π²ΠΈΡΠΈΠΌΡ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ для UI (SwiftUI Π½Π° iOS, Jetpack Compose Π½Π° Android) +- Π Π΅altime-синхронизация Ρ‡Π΅Ρ€Π΅Π· WebSockets + +--- -* `/iosApp` contains iOS applications. Even if you’re sharing your UI with Compose Multiplatform, - you need this entry point for your iOS app. This is also where you should add SwiftUI code for your project. -Learn more about [Kotlin Multiplatform](https://www.jetbrains.com/help/kotlin-multiplatform-dev/get-started.html), -[Compose Multiplatform](https://github.com/JetBrains/compose-multiplatform/#compose-multiplatform), -[Kotlin/Wasm](https://kotl.in/wasm/)… -We would appreciate your feedback on Compose/Web and Kotlin/Wasm in the public Slack channel [#compose-web](https://slack-chats.kotlinlang.org/c/compose-web). -If you face any issues, please report them on [GitHub](https://github.com/JetBrains/compose-multiplatform/issues). -You can open the web application by running the `:composeApp:wasmJsBrowserDevelopmentRun` Gradle task. \ No newline at end of file