https://github.com/mutualmobile/harvesttimekmp
A Kotlin multiplatform playground project for getharvest time logger clone.
https://github.com/mutualmobile/harvesttimekmp
Last synced: about 1 year ago
JSON representation
A Kotlin multiplatform playground project for getharvest time logger clone.
- Host: GitHub
- URL: https://github.com/mutualmobile/harvesttimekmp
- Owner: mutualmobile
- Created: 2022-05-23T06:54:42.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2022-06-22T19:54:23.000Z (almost 4 years ago)
- Last Synced: 2025-04-09T12:42:52.056Z (about 1 year ago)
- Language: Kotlin
- Size: 15.4 MB
- Stars: 46
- Watchers: 3
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 🕓 HarvestTime KMP
Multi-Platform Harvest Time Tracking clone project built with SwiftUI, Jetpack Compose, Kotlin/Js
[Access the Web App built with React + MUI here](https://harvestkmp.web.app)
### The purpose of this repository:
- Build cross-platform applications and share common code between Android, iOS, Web and Desktop.
- Provide support for different platform with respective Native UI for each, and sharing the common business logic.
- Dependency Injection using Koin.
- Usage of latest Ktor client for Networking.
- Performing background task with Kotlin Coroutines.
### Currently running on:
- [x] 
Android (Jetpack Compose)
- [x] 
Web (Kotlin/JS + React + MUI)
- [x] 
iOS (SwiftUI)
- [ ] 
Desktop JVM (Jetpack Compose)
- [x] 
MacOS (SwiftUI)
Built using [PraxisKMP](https://github.com/mutualmobile/PraxisKMP) as the base project.
Table of content
## 🏛️ Architecture
Architecture Diagram: [Here](https://drive.google.com/file/d/1aLgdk-3PUmAriNR_Z_mPNZBK-IrFpP1G/view?usp=sharing)
## 🌐 API
The Harvest API is written in Kotlin with SpringBoot. Find the repo [here](https://github.com/mutualmobile/HarvestAPISpring).
- Authentication :lock:
- [x] Find Organization
- [x] Sign In User
- [x] Sign Up User
- [x] Login User
- [x] Forgot Password
- [x] Change Password
- List Projects 📽
- [x] Org admin can create projects
- [x] Org admin can list,search projects
- [x] Org admin can assign projects to users
- [ ] more are.. 🚧 WIP
- Logging Time :office:
- [ ] Log Time 🚧 WIP
- [ ] an other
## 🏗️️ Built with ❤️ using Kotlin
| What | How |
|---------------- |------------------------------ |
| 🎭 Android UI | [Jetpack Compose](https://developer.android.com/jetpack/compose) |
| 🎭 IOS UI | [Swift UI](https://developer.apple.com/documentation/swiftui/) |
| 🎭 Web UI | [React JS with MUI](https://mui.com/) |
| 🏗 Architecture | [Clean](https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html) |
| 💉 DI | [Koin](https://insert-koin.io/) |
| 🌊 Async | [Coroutines, Flows, KMP Native Coroutines](https://github.com/rickclephas/KMP-NativeCoroutines) |
| 🌐 Networking | [Ktor](https://ktor.io/) |
| ð Storage | [Key Value, SqlDelight](https://github.com/russhwolf/multiplatform-settings) |
## 📷 Screenshots
### Android Screenshots
- [OnBoarding](#android-onboarding-screens)
- [Authenticate](#android-authentication-screens)
- [Home](#android-home-screens)
- [Settings](#android-settings-screens)
#### Android OnBoarding Screens
OnBoarding One
OnBoarding Two
OnBoarding Three
OnBoarding Four
#### Android Authentication Screens
Enter Organization Screen
Sign up Screen
Sign In Screen
#### Android Home Screens
Home Screen
New Entry Screen
Home Drawer
#### Android Settings Screens
Settings Screen
Report Screen
### Web Screenshots (ReactJS)
- Authentication Screens
- [Verify Organization Screen](#verify-organization-screen)
- [Sign Up Screen](#sign-up-screen)
- [Sign In Screen](#sign-in-screen)
- [Log In Screen](#log-in-screen)
- [Forgot Password Screen](#forgot-password-screen)
- Home Screens
- [Home Screen](#home-screen)
- [Home Drawer Screen](#home-drawer-screen)
- [All User Screen](#all-user-screen)
- [All Projects Screen](#all-project-assignment-screen)
- [Settings Screen](#settings-screen)
#### Verify Organization Screen
Verify Organization
#### Sign Up Screen
Sign Up
#### Sign In Screen
Sign In
#### Log In Screen
Log In
#### Forgot Password Screen
Forgot Password
#### Home Screen
Home
#### Home Drawer Screen
Home Drawer
#### All User Screen
All User
#### All Project Assignment Screen
All Project Assignment
#### Settings Screen
Settings
### iOS Screenshots
- [Authentications](#ios-authentications-screen)
- [Home](#ios-home-screens)
#### iOS Authentications Screen
On Boarding Screen
Sign In Screen
#### iOS Home Screens
Home Screen
New Entry List
New Entry Time
### 🪪 License
```
Copyright 2022 Mutual Mobile
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
```