Frontend for our canteen management system.

Overview

Canteen Management Frontend

Frontend for our canteen management system.
Built with flutter web.

The QR scanner feature requires https to be enabled (see getUserMedia() and Secure context restrictions).

Structure

See also dart/flutter package layout conventions.

  • lib/ main application sources
  • build/ (generated) build artifacts
  • web/, android/, ios/ base files for respective device builds
  • test/, integration_test/ test code for widget and integration tests, resp.
  • test_driver/ setup for flutter drive (integration) tests
  • .idea/, .circleci/ configuration files for IntelliJ and CircleCI resp.

Building from Source

  1. Set up flutter (includes the dart SDK)
  2. clone the repository
  3. run flutter build web --web-renderer html in the project root

The artifact is found in <project root>/build/web/.

Running and Debugging

IntelliJ/Android Studio

In the flutter toolbar (top right by default), select a device and the main.dart configuration and press either the Run or Debug button.

To run on other browsers and devices, select the server configuration and manually connect to <host address>:5000.

Note: in most modern browsers, camera usage is only allowed in secure contexts (https://... or localhost). For debugging purposes, Chrome allows specifying exceptions using chrome://flags/#unsafely-treat-insecure-origin-as-secure.

Terminal

In the following, replace ... with --web-renderer html (the qr_code_scanner package requires the HTML renderer to work in web).

Run flutter run ... to open a debug view on a supported browser.
Run flutter run -d web-server --web-hostname 0.0.0.0 --web-port 5000 ... and manually connect to <host address>:5000.

Running Tests

Widget Tests

Widget tests launch widgets in an optimized test environment.

Run flutter test (runs all files in test/)

Integration Tests

Integration tests launch the entire app on a real or emulated device/browser. This is closer to real use than widget tests, but requires more effort to set up and runs slower.

  1. Download chromedriver
  2. Run chromedriver --port=4444 (this is the default port for flutter drive)
  3. Run flutter drive --driver=test_driver/integration_test.dart --target=integration_test/demo_test.dart -d web-server

See also Running Flutter Driver tests with Web and the integration_test example app.

Comments
  • Continuous Deployment for development branch

    Continuous Deployment for development branch

    Enables CD to GitHub Pages for branch development. Includes improvements and fixes for the deployment script. Also added an "about" button with (i) icon to the home screen that displays build information (including git branch and commit hash).

    To verify that this is functional, see CircleCI pipeline runs simulated for main (deploys to canteen-mgmt.github.io, see repo) and development (deploys to aau-ase-groupc-ws2021.github.io, see repo).

    CircleCI setup: As recommended by CircleCI for complex deploy-key setups, a GitHub "machine user" (canteen-frontend-deploy-machine-user) was set up and added as collaborator to both GitHub Pages repos and the frontend repo (necessary for generating a deploy key used in the CircleCI frontend pipeline).

    opened by madmini 2
  • Refactor directory structure

    Refactor directory structure

    move tests, models, screens, services and widgets into fitting subdirectories for better structure rename leftover "Demos" fix import mocks from other test (mocks the same classes) change beamer/src/beamer.dart in beamer imports to beamer/beamer.dart (actual exportet library, but not detected by auto-import apparently)

    opened by madmini 1
  • Fix test results not processed if tests fail

    Fix test results not processed if tests fail

    CircleCI marks pipelines as failed as soon as some step fails, and only executes steps that are supposed to also run on failed builds (like uploading test results). Unfortunately, tests results still need to be processed before uploading (convert from JSON list to JUnit XML format) which did not take place.

    opened by madmini 1
  • Guard Routes

    Guard Routes

    Require login (user or higher) for all routes except home, login and registration. Require admin or higher for dish/menu management. Require owner for admin panel.

    opened by madmini 1
  • Show list of orders, generate QR codes

    Show list of orders, generate QR codes

    Display a simple list of orders (path /order) Move order demo to /order/submit, accessible through + button on order list Add pop-up QR code display (code is readable by the included qr-scanner, but order functionality not yet included)

    opened by madmini 1
  • Set up for system tests and mocking

    Set up for system tests and mocking

    System Tests

    Set up: run integration tests with backend and db running locally.

    By default CircleCI will check out the backend development branch. To change this behavior for a feature/... branch, for instance to test frontend branch feature/ui-stuff against backend branch feature/rest-stuff, define an environment variable in CircleCI as follows: BACKEND_BRANCH_feature_ui_stuff=feature/rest-stuff (replace any special characters, such as / and - by underscores _ in the name of the variable (not in the value), as the variable cannot be accessed otherwise).

    Mocking

    Set up: mockito (requires build_runner) and get_it (service injection for easy mocking).

    mockito generates code for mocked classes (*.mocks.dart). Therefore, widget tests (for tests that use mocking) and static analysis (of said tests) will fail without the generated code. For code generation run flutter pub run build_runner build --delete-conflicting-outputs.

    opened by madmini 1
  • Continuous Deployment to GitHub Pages

    Continuous Deployment to GitHub Pages

    opened by madmini 1
Owner
null
A flutter app which provides basic info about our soalr system.

⭐ Solar System ⭐ Built with ❤︎ by Akash Debnath This is my first project on Flutter. I made a simple solar system app which provides basic information

Akash Debnath 41 Apr 3, 2022
An alternative UI for the Human Resources Management System.

Human Resources Management System Frontend with Flutter An alternative UI for the Human Resources Management System that uses Flutter Framework and pr

Bulent Baris Kilic 18 Sep 7, 2022
Sales representative and sales management system to manage sales representatives, goods, and sales.

Sales Rep and Sales Management app. This mobile app is used to manage daily activities of a wholesale business. Getting Started This project is a star

Imesh Gunathilake 6 Jul 1, 2022
A Learning Management System Solutions Developed from Scratch inside Orange Digital Center Labs By ODC-Flutter WorkForce.

A Learning Management System Solutions Developed from Scratch inside Orange Digital Center Labs By ODC-Flutter WorkForce.

Orange Digital Center Egypt - Coding School 5 May 9, 2022
Attendence management system

We developed an Attendance management system for the use of our university including a mobile app( present in this repo which depicts my work ) , a website ( not present here as it was done by my team mates ) and a database hosted online ( work managed by my team mates ) , this app as of now is not able to work properly with api's due to some last minute changes and complexities

null 4 Nov 22, 2022
In this video we will learn how to Integrate NodeJS Login and Register API in our Flutter application using JWT Token Authentication.

Flutter Login & Register with Node JS Rest API In this video we will learn how to Integrate NodeJS Login and Register API in our Flutter application u

SnippetCoder 18 Nov 28, 2022
mypro immobilier app created to manage our real estate agency, we can store products, contacts and transactions..

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

soufiane bouchtaoui 1 Dec 11, 2021
A wrapper around our Cocoa and Java client library SDKs, providing iOS and Android support for those using Flutter and Dart.

Ably Flutter Plugin A Flutter plugin wrapping the ably-cocoa (iOS) and ably-java (Android) client library SDKs for Ably, the platform that powers sync

Ably Realtime - our client library SDKs and libraries 46 Dec 13, 2022
Expense tracker - Build an app in flutter that can record the transaction we make in our daily life

expense_tracker I tried to build an app in flutter that can record the transacti

Shishir Rijal 6 Nov 6, 2022
Our submission for ION 1.0

Problem Statement Forex is one of the most active securities market in the world, with a daily volume of 6.6 Trillion USD The forex market is said to

Drumil 1 Mar 27, 2022
Smart Chessboard - For our project we would like to use a mix of AI and embedded systems.

Table of Contents Overview Usage How To Build How To Run Diagrams Dependencies Overview For our project we would like to use a mix of

Shaheriar Malik 3 Mar 24, 2022
A package that gives us a modern way to show animated border as a placeholder while loading our widget with easy customization and ready to use.

A package that gives us a modern way to show animated border as a placeholder while loading our widget with easy customization and ready to use.

Mohit Chauhan 8 Oct 3, 2022
In this video we will learn how to Create CRUD Rest API for our Flutter application using NODEJS API.

Flutter CRUD Using NodeJS API In this video we will learn how to Create CRUD Rest API for our Flutter application using NODEJS API. ?? Packages Used h

SnippetCoder 14 Dec 30, 2022
A women safety app with various features on which women of our society can count on.

Amaan - You Deserve to be Safe! This is Hackfair 2.0 Submission where team from Google DSC COMSATS University Islamabad developed a women safety app a

Hassam Talha 28 Nov 10, 2022
GolfGo is a mobile app which complements our engineering design project.

GolfGo GolfGo is a mobile app which complements our engineering design project. The function of the app is to connect to a bluetooth module, as well a

null 1 Oct 1, 2022
Let's setup Firebase​​ for our Flutter​​ app on Android​, iOS​ and Flutter Web. Setup Firebase to use Firebase products.

Flutter Tutorial - Firebase Setup For Flutter Web Let's setup Firebase for our Flutter app on Android, iOS and Flutter Web. Setup Firebase to use Fire

null 1 Apr 27, 2022
The Dart client for Teta CMS. Our mission is to help people build amazing products.

Teta CMS The Dart client for Teta CMS Introducing Teta CMS Teta CMS is a low-code back-end service. We provide: Scalable NoSQL database Real-time subs

Teta.so 101 Dec 22, 2022
This is a MVP our app's. The app get the song's list on firebase and display then you can be listen App features.

music_app Requirements: flutter version 3.0.3 Dart 2.17.5 Firebase CLI 11.1.0 flutter sdk: >= 2.15.1 < 3.0.0 flutter dependentcies: http: 0.13.4 mvvm:

Lê Hồng Minh 3 Aug 2, 2022