{"id":21478489,"url":"https://github.com/alvish0407/kaam.com-technical-assesment","last_synced_at":"2026-05-18T18:38:14.573Z","repository":{"id":245151351,"uuid":"817225411","full_name":"Alvish0407/kaam.com-technical-assesment","owner":"Alvish0407","description":"A Todo app (ToDone) built with Flutter, Firebase and Riverpod within 8 Hours","archived":false,"fork":false,"pushed_at":"2024-08-23T05:45:21.000Z","size":1283,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-23T17:57:42.049Z","etag":null,"topics":["feature-first-project-strucutre","firebase-auth","firestore-database","flutter","flutter-animate","freezed","riverpod","technical-assessment"],"latest_commit_sha":null,"homepage":"","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Alvish0407.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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-19T09:15:13.000Z","updated_at":"2025-01-13T17:54:03.000Z","dependencies_parsed_at":"2024-06-20T04:58:59.762Z","dependency_job_id":"500a2d88-d6da-45d0-9d0c-7c9e794736d0","html_url":"https://github.com/Alvish0407/kaam.com-technical-assesment","commit_stats":null,"previous_names":["alvish0407/kaam-hiring-test","alvish0407/kaam.com-technical-assesment"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Alvish0407%2Fkaam.com-technical-assesment","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Alvish0407%2Fkaam.com-technical-assesment/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Alvish0407%2Fkaam.com-technical-assesment/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Alvish0407%2Fkaam.com-technical-assesment/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Alvish0407","download_url":"https://codeload.github.com/Alvish0407/kaam.com-technical-assesment/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243997164,"owners_count":20380982,"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","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":["feature-first-project-strucutre","firebase-auth","firestore-database","flutter","flutter-animate","freezed","riverpod","technical-assessment"],"created_at":"2024-11-23T11:18:34.633Z","updated_at":"2026-05-18T18:38:09.541Z","avatar_url":"https://github.com/Alvish0407.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"### A Todo app _(ToDone)_ built with Flutter \u0026 Firebase within 8 Hours\n\nhttps://github.com/Alvish0407/kaam-hiring-test/assets/80829856/6e3f2c8a-1775-4069-8e25-c1ca2cac9263\n\n\u003cdetails\u003e\n\u003csummary\u003eAssignment: To-Do List App\u003c/summary\u003e\n  \n**Objective:** Build a simple yet functional To-Do List application using Flutter.\n\n**Task:** Develop a To-Do List application with the following features:\n\n**User Authentication:**\n1. Implement user login and registration using Firebase Authentication.\n2. Use email and password as the login method.\n3. Include basic form validation (e.g., email format, password strength).\n\n**To-Do List:**\n1. Allow authenticated users to create, read, update, and delete to-do items.\n2. Each to-do item should have a title, description, due date, and completion status.\n3. Store to-do items in Firebase Firestore, associating them with the logged-in user.\n\n**State Management:**\n1. Use a state management solution such as Provider, Riverpod, or Bloc.\n2. Justify your choice in the README file.\n\n**UI/UX:**\n1. Design a clean, user-friendly interface.\n2. Ensure the app is responsive and works on both Android and iOS devices.\n3. Include basic animations for transitions and status changes.\n\n**Technical Requirements:**\n1. Use the latest version of Flutter and Dart.\n2. Implement asynchronous programming and error handling.\n3. Follow best practices for clean and maintainable code.\n\n### Deliverables\n**Flutter Project:**\n1. Host the project in a public Git repository (e.g., GitHub, GitLab).\n2. Include a README file with setup instructions, state management justification, and any additional notes or assumptions.\n\n**Video Demonstration:**\n1. Record a short video (2-3 minutes) demonstrating the functionality of the app.\n2. Showcase the user authentication flow, to-do list management, and any animations.\n\n\u003c/details\u003e\n\n## Prerequisite\n1. Download [fvm](https://fvm.app/) and follow the [instructions](https://fvm.app/documentation/guides/basic-commands#examples-1)\n2. [Setup](https://github.com/Alvish0407/kaam-hiring-test/blob/main/README.md#running-the-project-with-firebase) Firebase Project\n\n## Features\n\n- [x] Implement user login and registration using Firebase Authentication (Email and Password).\n- [x] Include basic form validation (e.g., email format, password strength)\n- [x] Allow authenticated users to create, read, update, and delete to-do items.\n- [x] Each to-do item has a title, description, due date, and completion status which are stored in Firebase Firestore.\n- [x] Basic animations for transitions and status changes.\n- [x] Responsive UI and Clean Code using Feature-First architecture.\n- [x] Clean, user-friendly interface.\n\n## Packages in use\n\nThese are the main packages used in the app:\n\n- [Flutter Riverpod](https://pub.dev/packages/flutter_riverpod) for data caching, dependency injection, and more\n- [Riverpod Generator](https://pub.dev/packages/riverpod_generator) and [Riverpod Lint](https://pub.dev/packages/riverpod_lint) for the latest Riverpod APIs\n- [GoRouter](https://pub.dev/packages/go_router) for navigation\n- [Firebase Auth](https://pub.dev/packages/firebase_auth) for authentication\n- [Cloud Firestore](https://pub.dev/packages/cloud_firestore) as a realtime database\n- [Intl](https://pub.dev/packages/intl) for date formatting\n- [Flutter Animate](https://pub.dev/packages/flutter_animate) for performing animations reducing boilerplate code\n- [Build Runner](https://pub.dev/packages/build_runner) is concrete way of generating files using Dart code\n\nSee the [pubspec.yaml](pubspec.yaml) file for the complete list.\n\n## Why Riverpod ?\nRiverpod is a reactive caching framework for Flutter/Dart.\n\nUsing declarative and reactive programming, Riverpod takes care of a large part of your application's logic for you. It can perform network-requests with built-in error handling and caching, while automatically re-fetching data when necessary.\n\n## Running the project with Firebase\n\nTo use this project with Firebase, follow these steps:\n\n- Create a new project with the Firebase console\n- Enable Firebase Authentication, along with the Email/Password Authentication Sign-in provider in the Firebase Console (Authentication \u003e Sign-in method \u003e Email/Password \u003e Edit \u003e Enable \u003e Save)\n- Enable Cloud Firestore\n\n### Using the CLI\n\nMake sure you have the Firebase CLI and [FlutterFire CLI](https://pub.dev/packages/flutterfire_cli) installed.\n\nThen run this on the terminal from the root of this project:\n\n- Run `firebase login` so you have access to the Firebase project you have created\n- Run `flutterfire configure` and follow all the steps\n\nThat's it. Have fun!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falvish0407%2Fkaam.com-technical-assesment","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falvish0407%2Fkaam.com-technical-assesment","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falvish0407%2Fkaam.com-technical-assesment/lists"}