{"id":30386509,"url":"https://github.com/shivanandyadav11/check-daily-activity","last_synced_at":"2026-05-20T05:32:20.851Z","repository":{"id":246806988,"uuid":"821243561","full_name":"shivanandyadav11/Check-Daily-Activity","owner":"shivanandyadav11","description":"Check Daily Activity is a productivity and task management application designed to help users organize their daily activities efficiently.","archived":false,"fork":false,"pushed_at":"2024-07-16T06:20:25.000Z","size":425,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-15T23:44:50.812Z","etag":null,"topics":["android","compose-multiplatform","desktop-app","ios","jetpack","jetpack-compose","kmp","kotlin","server"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc0-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shivanandyadav11.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-28T05:55:45.000Z","updated_at":"2025-06-09T08:46:20.000Z","dependencies_parsed_at":null,"dependency_job_id":"16017380-d4ac-4909-9389-490ffe400494","html_url":"https://github.com/shivanandyadav11/Check-Daily-Activity","commit_stats":null,"previous_names":["shivanandyadav11/check-daily-activity"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/shivanandyadav11/Check-Daily-Activity","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shivanandyadav11%2FCheck-Daily-Activity","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shivanandyadav11%2FCheck-Daily-Activity/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shivanandyadav11%2FCheck-Daily-Activity/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shivanandyadav11%2FCheck-Daily-Activity/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shivanandyadav11","download_url":"https://codeload.github.com/shivanandyadav11/Check-Daily-Activity/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shivanandyadav11%2FCheck-Daily-Activity/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271420535,"owners_count":24756588,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-21T02:00:08.990Z","response_time":74,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","compose-multiplatform","desktop-app","ios","jetpack","jetpack-compose","kmp","kotlin","server"],"created_at":"2025-08-21T03:31:14.992Z","updated_at":"2026-05-20T05:32:20.824Z","avatar_url":"https://github.com/shivanandyadav11.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"This is a Kotlin Multiplatform project targeting Android, iOS, Web, Desktop, Server.\n\n* `/composeApp` is for code that will be shared across your Compose Multiplatform applications.\n  It contains several subfolders:\n  - `commonMain` is for code that’s common for all targets.\n  - Other folders are for Kotlin code that will be compiled for only the platform indicated in the folder name.\n    For example, if you want to use Apple’s CoreCrypto for the iOS part of your Kotlin app,\n    `iosMain` would be the right folder for such calls.\n\n* `/iosApp` contains iOS applications. Even if you’re sharing your UI with Compose Multiplatform, \n  you need this entry point for your iOS app. This is also where you should add SwiftUI code for your project.\n\n* `/server` is for the Ktor server application.\n\n* `/shared` is for the code that will be shared between all targets in the project.\n  The most important subfolder is `commonMain`. If preferred, you can add code to the platform-specific folders here too.\n\n\nLearn more about [Kotlin Multiplatform](https://www.jetbrains.com/help/kotlin-multiplatform-dev/get-started.html),\n[Compose Multiplatform](https://github.com/JetBrains/compose-multiplatform/#compose-multiplatform),\n[Kotlin/Wasm](https://kotl.in/wasm/)…\n\n**Note:** Compose/Web is Experimental and may be changed at any time. Use it only for evaluation purposes.\nWe 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).\nIf you face any issues, please report them on [GitHub](https://github.com/JetBrains/compose-multiplatform/issues).\n\nYou can open the web application by running the `:composeApp:wasmJsBrowserDevelopmentRun` Gradle task.\n\n# Design\n\n[Check the design on Figma](https://www.figma.com/design/wSyg60Tkg5DQzyPPDNHTV7/dailoz-app-vektora-studio?node-id=0-1\u0026t=lF2cXQVCj9bOOfmy-0)\n\n\n# Check Daily Activity App (Android, iOS, and Desktop)\n\n## Features\n\n- **UI**: Common Jetpack Compose\n- **Navigation**: Compose Navigation\n- **Dependency Injection**: Koin\n- **Database**: Room Database\n- **Date Handling**: Platform-specific library\n- **Shared ViewModel**: SharedViewModel across all platforms\n- **Background Work**: Coroutines\n- ** Work in Progress\n\n---\n\n## Flow Recording\n|Check Daily Update|\n|:---:|\n|\u003cvideo src=\"https://github.com/user-attachments/assets/42fbf05e-172b-496c-930c-d25054a0da46\" controls=\"controls\" style=\"max-width: 100%;\"\u003e\u003c/video\u003e|\n\n# Android Screenshots\n\n| Landing | Sign In | Sign Up | Error on Sign In|\n|:---:|:---:|:---:|:---:|\n|\u003cimg width=\"350\" alt=\"android_landing_page\" src=\"https://github.com/user-attachments/assets/9596102e-d2bc-49db-8404-ab61eeb79f61\"\u003e|\u003cimg width=\"350\" alt=\"signIN\" src=\"https://github.com/user-attachments/assets/51106a0d-93f6-405e-8a37-fb3b15dc39ad\"\u003e|\u003cimg width=\"350\" alt=\"signUP\" src=\"https://github.com/user-attachments/assets/39275ab5-24fc-4386-9cc8-4ce9257b0855\"\u003e|\u003cimg width=\"350\" alt=\"error\" src=\"https://github.com/user-attachments/assets/287aff26-ac4e-4b9a-9e69-623144c8f789\"\u003e|\n\n| Loading | Home | Add Task |\n|:---:|:---:|:---:|\n|\u003cimg width=\"350\" alt=\"loading\" src=\"https://github.com/user-attachments/assets/489209aa-2bdf-49b4-963d-1cc950ff469b\"\u003e|\u003cimg width=\"350\" alt=\"home\" src=\"https://github.com/user-attachments/assets/7cbfb5c1-e05e-4af8-8248-1f47caa295ac\"\u003e|\u003cimg width=\"350\" alt=\"add_task\" src=\"https://github.com/user-attachments/assets/9d50c48d-062c-4053-991d-eb98b7f7d8e6\"\u003e|\n\n\n# iOS\n\n| Landing | Sign In | Sign Up | Error on Sign In|\n|:---:|:---:|:---:|:---:|\n|\u003cimg width=\"350\" alt=\"ios_landing_page\" src=\"https://github.com/user-attachments/assets/557b92bc-77d0-4b44-8cb6-ae3fa13b2178\"\u003e|\u003cimg width=\"350\" alt=\"signIN\" src=\"https://github.com/user-attachments/assets/dbbda03f-de9e-4197-84b0-3f7b8a94595e\"\u003e|\u003cimg width=\"350\" alt=\"signUP\" src=\"https://github.com/user-attachments/assets/6d697cc6-7c2f-48f2-89b1-73a19c4533f8\"\u003e|\u003cimg width=\"350\" alt=\"error\" src=\"https://github.com/user-attachments/assets/f20c46ce-001f-4bec-926a-7f523a69dec1\"\u003e|\n\n| Loading | Home | Add Task |\n|:---:|:---:|:---:|\n|\u003cimg width=\"350\" alt=\"loading\" src=\"https://github.com/user-attachments/assets/026e224d-96cc-4f77-87b7-c95fa13108a9\"\u003e|\u003cimg width=\"350\" alt=\"home\" src=\"https://github.com/user-attachments/assets/0caaaa12-9135-43be-9d74-1b13256374c4\"\u003e|\u003cimg width=\"350\" alt=\"add_task\" src=\"https://github.com/user-attachments/assets/83a5d51d-2b1b-4ec5-9ad8-9c7c26293ee9\"\u003e|\n\n\n# Desktop\n\n| Landing | Sign In | Sign Up | Error on Sign In|\n|:---:|:---:|:---:|:---:|\n|\u003cimg width=\"350\" alt=\"ios_landing_page\" src=\"https://github.com/user-attachments/assets/b66d2c7c-5607-4014-9e95-693704ca42ff\"\u003e|\u003cimg width=\"350\" alt=\"signIN\" src=\"https://github.com/user-attachments/assets/f0689e79-24e7-465e-b7df-2d7958a1a0d0\"\u003e|\u003cimg width=\"350\" alt=\"signUP\" src=\"https://github.com/user-attachments/assets/3360d129-ab24-403f-a8c7-33a5070e0eb6\"\u003e|\u003cimg width=\"350\" alt=\"error\" src=\"https://github.com/user-attachments/assets/476b5baa-e8c8-4132-9f49-fa3a417664aa\"\u003e|\n\n| Loading | Home | Add Task |\n|:---:|:---:|:---:|\n|\u003cimg width=\"350\" alt=\"loading\" src=\"https://github.com/user-attachments/assets/1757ce80-1aeb-43c9-8ee3-845b441c6bd4\"\u003e|\u003cimg width=\"350\" alt=\"home\" src=\"https://github.com/user-attachments/assets/8db5e6c1-80a0-47e5-909d-1efc44cf35df\"\u003e|\u003cimg width=\"350\" alt=\"add_task\" src=\"https://github.com/user-attachments/assets/7eabce5a-ae9e-4250-92e3-4bde063a80f3\"\u003e|\n\n---\n\n# Ktor Application\n\nThis project is a Ktor-based web application that provides user authentication and protected routes. The application allows users to sign up, sign in, and access a protected endpoint.\n\n## Table of Contents\n\n- [Getting Started](#getting-started)\n- [Running the Application](#running-the-application)\n- [API Endpoints](#api-endpoints)\n- [Sign Up](#1-sign-up)\n- [Sign In](#2-sign-in)\n- [Protected Route](#3-protected-route)\n- [Configuration](#configuration)\n- [Built With](#built-with)\n- [License](#license)\n\n## Getting Started\n\nThese instructions will help you set up and run the application on your local machine for development and testing purposes.\n\n### Prerequisites\n\n- [JDK 8+](https://www.oracle.com/java/technologies/javase-jdk11-downloads.html)\n- [Gradle](https://gradle.org/install/)\n- [MongoDB Atlas](https://www.mongodb.com/cloud/atlas) account (for storing user data)\n\n### Installing\n\n1. Clone the repository:\n\n  ```bash\n  git clone https://github.com/your-username/ktor-application.git\n  cd ktor-application\n  ```\n\n2. Configure your environment variables:\n\n  Create a `.env` file in the root directory and add the following environment variables:\n\n  ```plaintext\n  JWT_ISSUER=https://your-domain.com/\n  JWT_AUDIENCE=your-audience\n  JWT_REALM=your-realm\n  JWT_SECRET=your-secret\n  MONGO_PW=your-mongodb-password\n  ```\n\n3. Build the project:\n\n  ```bash\n  ./gradlew build\n  ```\n\n## Running the Application\n\nTo run the application, use the following command:\n\n```bash\n./gradlew run\n```\n\nThe server will start on `http://localhost:5500`.\n\n## API Endpoints\n\n### 1. Sign Up\n\n**URL**: `http://localhost:5500/signup`\n**Method**: `POST`\n**Body**:\n\n```json\n{\n\"name\": \"shiv\",\n\"email\": \"shiv@test.com\",\n\"password\": \"test1234\"\n}\n```\n\n**Response**:\n\n- `200 OK`: User successfully registered and returns a JWT token.\n- `400 Bad Request`: Invalid request data.\n\n### 2. Sign In\n\n**URL**: `http://localhost:5500/signin`\n**Method**: `POST`\n**Body**:\n\n```json\n{\n\"name\": \"\",\n\"email\": \"shiv@test.com\",\n\"password\": \"test1234\"\n}\n```\n\n**Response**:\n\n- `200 OK`: Returns a JWT token for authentication.\n- `401 Unauthorized`: Invalid credentials.\n\n### 3. Protected Route\n\n**URL**: `http://localhost:5500/secret`\n**Method**: `GET`\n**Headers**:\n\n```plaintext\nAuthorization: Bearer \u003cJWT Token\u003e\n```\n\n**Response**:\n\n- `200 OK`: Access to the protected resource.\n- `401 Unauthorized`: Invalid or missing JWT token.\n\n## Configuration\n\nThe application is configured using the `application.conf` file located in the `resources` directory. Ensure that the following properties are correctly set:\n\n```hocon\nktor {\n  deployment {\n    port = 5500\n  }\n  application {\n    modules = [ online.nsandroid.ApplicationKt.module ]\n  }\n  security {\n    jwt {\n        issuer = ${?JWT_ISSUER}\n        audience = ${?JWT_AUDIENCE}\n        realm = ${?JWT_REALM}\n        secret = ${?JWT_SECRET}\n    }\n  }\n}\n```\n\n### TODO Items from the Code\n\nThe `Application.kt` file includes TODO items to enhance the functionality and security of the application. Ensure to address the following:\n\n- **TODO**: Add proper error handling for all routes.\n- **TODO**: Implement user password hashing before storing in the database.\n- **TODO**: Add logging to monitor application behavior and errors.\n- **TODO**: Secure the `/secret` route to ensure only authenticated users can access it.\n- **TODO**: Validate user input to prevent SQL injection and other attacks.\n- **TODO**: Configure CORS to allow requests from trusted origins.\n- **TODO**: Pass database name `val dbName = \"\"`\n- **TODO**: Configure before testing it: `connectionString = \"mongodb+srv://\u003cusername\u003e:\u003cpassword\u003e@\u003ccluster-url\u003e/\u003cdbname\u003e?retryWrites=true\u0026w=majority\"`\n- **TODO**: Before running pass JWT secret here: `const val JWT_SECRET = \"\"`\n- **TODO**: Add MongoDB password here: `const val MONGO_PW = \"\"`\n\n## Built With\n\n- [Ktor](https://ktor.io/) - Framework for building asynchronous servers and clients in connected systems.\n- [KMongo](https://litote.org/kmongo/) - Kotlin toolkit for MongoDB.\n- [Gradle](https://gradle.org/) - Build tool.\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshivanandyadav11%2Fcheck-daily-activity","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshivanandyadav11%2Fcheck-daily-activity","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshivanandyadav11%2Fcheck-daily-activity/lists"}