{"id":15177529,"url":"https://github.com/alvish0407/namahaom.com-technical-assesment","last_synced_at":"2026-01-05T07:06:14.652Z","repository":{"id":254547770,"uuid":"846867124","full_name":"Alvish0407/namahaom.com-technical-assesment","owner":"Alvish0407","description":"An E-commerce app (eComm) built with Flutter, Riverpod, Firebase Auth and dummyjson API within 12 Hours","archived":false,"fork":false,"pushed_at":"2024-09-10T04:14:37.000Z","size":806,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-31T21:11:26.678Z","etag":null,"topics":["animations","dummyjson","e-commerce","firebase-auth","flutter","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-08-24T07:06:05.000Z","updated_at":"2025-01-13T17:53:20.000Z","dependencies_parsed_at":"2024-09-23T09:01:06.343Z","dependency_job_id":"3be3b0b9-3fac-4ab7-8efa-cd897ec97089","html_url":"https://github.com/Alvish0407/namahaom.com-technical-assesment","commit_stats":{"total_commits":24,"total_committers":2,"mean_commits":12.0,"dds":0.04166666666666663,"last_synced_commit":"aad02f643ef9977a2937a9e07a23e86ca002bd84"},"previous_names":["alvish0407/namahaom.com-technical-assesment"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Alvish0407%2Fnamahaom.com-technical-assesment","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Alvish0407%2Fnamahaom.com-technical-assesment/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Alvish0407%2Fnamahaom.com-technical-assesment/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Alvish0407%2Fnamahaom.com-technical-assesment/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Alvish0407","download_url":"https://codeload.github.com/Alvish0407/namahaom.com-technical-assesment/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238366652,"owners_count":19460165,"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":["animations","dummyjson","e-commerce","firebase-auth","flutter","freezed","riverpod","technical-assessment"],"created_at":"2024-09-27T14:40:19.524Z","updated_at":"2025-10-26T16:30:38.951Z","avatar_url":"https://github.com/Alvish0407.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"### An E-commerce app (eComm) built with Flutter, Riverpod, Firebase Auth and dummyjson API within 12 Hours\n\nhttps://github.com/user-attachments/assets/b87fbca8-cb04-45c3-957d-6fd4c1182db1\n\n\u003cdetails\u003e\n\u003csummary\u003eAssignmnet: An e-commerce app\u003c/summary\u003e\n\n#### Build a fully functional e-commerce mobile application that allows users to browse products, add items to a cart, and complete a purchase. This task will help us evaluate your Flutter skills, code quality, state management, and ability to integrate APIs.\n\n### TASK REQUIREMENTS:\n\n#### 1. PRODUCT LISTING:\n\n- Implement a product listing page where users can view products in various categories.\n- Each product should display an image, name, price, and an \"Add to Cart\" button.\n\n#### 2. PRODUCT DETAIL:\n\n- Create a product detail page that displays detailed information about the selected product.\n- Include options like quantity selection, product description, and related products.\n\n#### 3. SHOPPING CART:\n\n- Develop a shopping cart feature where users can view the items they've added, update quantities, and see the total price.\n- Include a \"Checkout\" button to proceed to the purchase process.\n\n#### 4. CHECKOUT PROCESS:\n\n- Implement a checkout process where users can enter shipping information, select payment methods, and confirm their order.\n- Provide a confirmation screen showing the order summary after the checkout is completed.\n\n#### BONUS POINTS:\n\n- Implement user authentication (login/signup) using a third-party service or mock API.\n- Add animations or transitions that enhance the user experience.\n- Implement local storage to persist cart items between app sessions.\n\n#### GUIDELINES:\n\n- State Management: Use an appropriate state management solution to manage app state efficiently.\n- Code Quality: Focus on clean, maintainable, and well-documented code. Follow best practices for Flutter development.\n- API Integration: You are not expected to build backend APIs but will be tested on API integration. Use mock APIs wherever necessary or integrate third-party APIs.\n\n#### DESIGN DELIVERABLES:\n\n- Codebase: Submit your complete codebase.\n- Demo Video: Record a video demonstrating the working application,\nhighlighting key features and explaining your code structure and\ndecisions.\n\n\u003c/details\u003e\n\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\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 filter products, manage cart, place order.\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## Backend\n\n- Implemented Firebase for secure email/password authentication.\n- Utilized [DummyJSON](https://dummyjson.com/) APIs to manage products, categories, and cart functionalities.\n- Integrated mock data for shipping addresses and payment methods to simulate real-world scenarios.\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- [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  \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%2Fnamahaom.com-technical-assesment","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falvish0407%2Fnamahaom.com-technical-assesment","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falvish0407%2Fnamahaom.com-technical-assesment/lists"}