Cross-platform Mobile Development with Flutter S22 elective.

Related tags

Templates Mobile
Overview

Cross-platform Mobile Development with Flutter S22 elective.

Semester 6, 3rd study-year, Innopolis University.

Hits-of-Code Codemagic build status

Haskell team

  • Timur Nugaev
  • Emil Khabibullin
  • Roman Soldatov

📌 About

  • This application can be used to track household chores for roommates.
  • A user can create a queue and invite his/her roommates.
  • Users complete a queue task one by one in a loop. So, ideally, every roommate should complete a task on each iteration.
  • The app helps to remind users about to-dos and fairly automate the tasks distribution between roommates based on their contribution.
  • For the REST API, the Backend project was developed (please do not take into account this contribution 🙏 ).

📲 APK

  • You can download the APK file to install and use it on your Android phone (also available on the GitHub releases page)
  • or you can download this GitHub project and build it for your favourite platform.

☎️ iOS

  • For iOS you can use the Runner.app file or download this GitHub project and build it by yourself.
  • It is also available on the GitHub releases page)

🛠 How to build

  • When you've cloned the repo, you'll need to run flutter pub get to locally install all the dependencies
  • Wait a bit...
  • To release build APK for android run: flutter build apk --split-per-abi
  • To release build for iOS run: flutter build ios
  • PROFIT

List of screens

Onboarding screen

  • Welcome screen
  • Input user name

To-do tasks

  • To-do tasks section
  • Open a task
  • Input expenses
  • Select several tasks

Queues

  • Queues section
  • Create queue
  • Join queue
  • Queue's details
  • Edit queue
  • Invite in queue

Notifications

  • Notifications section
  • push notifications on Android

Settings

  • Settings section
  • Notification settings
  • Theme
  • Language

List of features

  • Create a new queue
  • Invite users to a queue
  • Complete a task when it's your turn
  • Complete a task even it's not your turn. So, you will be skipped on the next iteration
  • Skip a task. However, on the next iteration, you will be forced to complete a task twice
  • Track expenses for tasks that require buying something
  • Temporarily leave a queue ("freeze"). Your progress will be saved, but you won't participate in a queue. For example, you can use this feature when you leave your room for the Winter holidays
  • If it's someone's turn you can "shake" him to remind him about a task by sending a notification
  • Receive reminders when it's your turn
  • Receive notifications about queue progress
  • Notifications history
  • No registration is needed

Features on which we are working on can be found in issues

📊 Repositories

Comments
  • Change notification's scrolling

    Change notification's scrolling

    There should be a single scrolling on the screen.

    • First elements - unreadnotifications
    • Other elements - allnotifications

    They shouldn't be separated

    feature 
    opened by SMore-Napi 1
  • Rework automatic release

    Rework automatic release

    Rework automatic release: add tagging and release versions instead of just one release build

    So now there should be

    • [x] a tag for each push on main (for each version)
    • [x] version autogeneration
    • [x] a release with that version and all the compiled files of the application (executables)
    routine 
    opened by al1ych 0
  • More custom lint rules [closes #58]

    More custom lint rules [closes #58]

    Added linting rule for the styleguide's rule on naming unused parameters in callback functions

    This linting rule ensures that no one programmer in our team under our Styleguide.md guidelines can ever write callback functions in dart so that there is one unused parameter that is not named like '_'*n, n>0.

    This rule comes from the Effective Dart guideline which is what our guidelines inherit from.

    The Effective Dart guideline does not have a lint for this rule by default, so we coded it ourselves to ensure the quality of complying with the rule.

    opened by al1ych 0
  • Show

    Show "freeze" button even if user is on duty

    As for now, user can not freeze a queue if it's in to-do list, i.e. user is on duty for this queue. This button is hidden. However, it might confuse user and he would not know how to freeze a queue.

    So, let's show this button all the time. However, if the user is on duty and he taps on the "freeze" button, then show a pop-up alert window saying "You can't freeze this queue since you are on duty. Please complete or skip this queue to be able to freeze it". Below this message add two buttons

    • "Skip and freeze" - if a user taps on this button, then app will send two requests: POST /tasks/skip and then POST /queues/freeze/{queueId}
    • "Close" - then user will just close this alert. Nothing will change.
    feature 
    opened by SMore-Napi 0
  • Change API for user

    Change API for user

    Description with up to date info in Swagger: https://innoqueue-dev.herokuapp.com/swagger-ui/index.html#/User

    Change 1

    Before:

    POST /user/signup Request body:

    {
      "user_name": "string",
      "fcm_token": "string"
    }
    

    Response

    {
      "token": "string",
      "user_id": 0
    }
    

    After:

    ** POST** /user/signup Request body:

    {
      "userName": "string",
      "fcmToken": "string"
    }
    

    Response

    {
      "token": "string",
      "userId": 0
    }
    

    Change 2

    Before:

    GET /settings Response

    {
      "completed": true,
      "skipped": true,
      "freeze": true,
      "name": "string",
      "joined_queue": true,
      "left_queue": true,
      "your_turn": true
    }
    

    After:

    GET /user Response

    {
      "userName": "string",
      "completed": true,
      "skipped": true,
      "joinedQueue": true,
      "freeze": true,
      "leftQueue": true,
      "yourTurn": true
    }
    

    Change 3

    Before:

    PATCH /settings Request body:

    {
      "name": "string",
      "completed": true,
      "skipped": true,
      "joined_queue": true,
      "freeze": true,
      "left_queue": true,
      "your_turn": true
    }
    

    Response

    {
      "completed": true,
      "skipped": true,
      "freeze": true,
      "name": "string",
      "joined_queue": true,
      "left_queue": true,
      "your_turn": true
    }
    

    After:

    PATCH /user Request body:

    {
      "userName": "string",
      "completed": true,
      "skipped": true,
      "joinedQueue": true,
      "freeze": true,
      "leftQueue": true,
      "yourTurn": true
    }
    

    Response

    {
      "userName": "string",
      "completed": true,
      "skipped": true,
      "joinedQueue": true,
      "freeze": true,
      "leftQueue": true,
      "yourTurn": true
    }
    
    feature 
    opened by SMore-Napi 0
  • Remove `hash_code` field when receiving backend response

    Remove `hash_code` field when receiving backend response

    After this backend implementation https://github.com/InnoQueue/Backend/issues/150 Backend won't return hash_code field in JSON response. So, mobile app should also remove it and do not use hash_code anyhow.

    Should be implemented after: https://github.com/InnoQueue/Backend/issues/150

    routine 
    opened by SMore-Napi 0
  • Change URL requests to the backend

    Change URL requests to the backend

    Each URL should start with prefix /api/v1/. For example, before: GET https://innoqueue.herokuapp.com/queues after: GET https://innoqueue.herokuapp.com/api/v1/queues

    So, add this prefix to ALL requests

    Should be implemented after this: https://github.com/InnoQueue/Backend/issues/149

    blocker 
    opened by SMore-Napi 0
  • Show

    Show "Your future to-dos" section

    In "To-Do" tab show tasks for which the user will be assigned as a next user. Show these tasks below the main list. See ref:

    Should be completed after https://github.com/InnoQueue/Backend/issues/128

    feature blocker 
    opened by SMore-Napi 0
  • Add dropdown button menu to sort queues

    Add dropdown button menu to sort queues

    In "Queues" section add a button to the top right corner with name sort. There should be the following options to select:

    • queue name
    • participant name
    • date joined
    • upcoming to-dos

    The selected option should be saved in app cache. So, next time when the app is launched the queues order preserves the same sorting option.

    Should be implemented after: https://github.com/InnoQueue/Backend/issues/91

    feature blocker 
    opened by SMore-Napi 0
Releases(v1.0.104)
Owner
InnoQueue
Organize and maintain household chores with your roommates!
InnoQueue
A comprehensive guide on learning how to code cross platform mobile applications with the Flutter framework, from the ground up.

✳️ The Ultimate Guide to App Development with Flutter ✳️ A complete and comprehensive guide to learning Flutter with explanations, screenshots, tips,

Anthony 243 Jan 1, 2023
Cross Platform mobile application built using Flutter for a group project

splitz A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if this i

Utkarsh Omer 0 Jul 30, 2022
A cross platform mobile application developed in flutter

A cross platform mobile application ?? developed in flutter to keep track of dai

Melwin Lobo 1 Dec 16, 2021
Cross Platform app in Flutter with Firebase Auth and Firestore. Available for Mobile,Web,Desktop

NavokiNotes Navoki Notes, a note app app, will sync data to cloud and on all devices. We have application for Android, iOS, Web App, PWA, Windows, mac

shivam srivastava 93 Dec 27, 2022
A beautiful cross platform mobile web app use this and ENJOY (2 page) - Flutter UI from scratch

course_app A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if th

Mobin 2 Feb 9, 2022
Time-Tracker is a cross platform software integrated with Firebase and this is the mobile version created with Flutter.

Time Tracker | Flutter Time tracker is a cloud based task manager where you can manage your tasks in your mobile or web browser in a same time or in a

AmirHossein Mohammadi 10 Oct 25, 2022
Blood Bank is cross platform mobile application that is developed using technologies like Flutter/Dart for frontend and Firebase for data storage

Blood Bank is cross platform mobile application that is developed using technologies like Flutter/Dart for frontend and Firebase for data storage. The sole goal of this application is to make blood donation resourceful and accessible all round the world.

Sajan Poudel 4 Nov 5, 2022
A feature-rich cross-platform webview using webview_flutter for mobile and iframe for web. JS interop-ready.

A feature-rich cross-platform webview using webview_flutter for mobile and iframe for web. JS interop-ready. Getting started Gallery Basic usage Featu

null 2 Mar 17, 2022
Cross-platform mobile app for tracking GPS with IoT technologies.

IoT Tracking Cross-platform mobile app for tracking GPS with IoT technologies. Table of Contents Introduction Requirements Installation Build & Run Kn

0xShikYe 4 Oct 2, 2022
Portarius is a free, open-source, cross-platform mobile application that allows you to manage your Portainer sessions.

Portarius [Latin: Porta/Door Arius/Keeper] Features User management See running/stopped containers (and also start/stop and restart them) See containe

Zbe 54 Jan 7, 2023
An instantly ready, full-featured alerts for development on any platform with flutter

An instantly ready, full-featured alerts for development on any platform with flutter. Enabling you to complete projects and deploy quickly. With QuickAlert, you can display animated alert dialogs such as success, error, warning, confirm, loading or even a custom dialog.

Belovance 16 Dec 18, 2022
Flutter-for-Wordpress-App - Cross platform wordpress news app built with Flutter and WP REST API

Flutter for Wordpress A flutter app for a wordpress websites with clean and elegant design. This app is available in free and pro version. You can cho

Madhav Poudel 243 Dec 23, 2022
Flutter-Wordpress-App - Cross platform wordpress news app built with Flutter

Flutter for Wordpress A flutter app for a wordpress websites with clean and elegant design. This app is available in free and pro version. You can cho

Madhav Poudel 243 Dec 23, 2022
A cross-platform flutter package to convert your links into rich beautiful previews.

Link Preview Generator A cross-platform flutter package to convert your links into rich beautiful previews. This package is inspired from Any Link Pre

Pranav Bedre 12 Oct 21, 2022
Open-source, cross-platform, hassle-free file sharing with AES-256 encryption made with Flutter & Dart.

Odin ⚡ Open source easy file sharing for everyone. ⚡ Cross-platform hassle-free file sharing with AES-256 encryption made with Flutter & Dart. Getting

Odin 111 Dec 22, 2022
Permission plugin for Flutter. This plugin provides a cross-platform (iOS, Android) API to request and check permissions.

Flutter permission_handler plugin The Flutter permission_handler plugin is build following the federated plugin architecture. A detailed explanation o

Baseflow 1.7k Dec 31, 2022
A cross-platform Flutter home workout app that respects your privacy. THIS IS A GITLAB MIRROR, file issues and contribute there.

Feeel Feeel is an open-source workout app for doing simple at-home exercises. This is a rewrite of the original app in Flutter, to make development ea

null 27 Dec 26, 2022
A cross-platform Flutter widget for displaying websites. Optional navigation buttons.

Overview Gives you a cross-platform Flutter widget for displaying websites and other web content. Licensed under the Apache License 2.0. Links Github

Dint 11 Oct 23, 2022