GithubHelp home page GithubHelp logo

qlink's Introduction

Qlink

A mobile application that summarizes Queen's University online information particular to a student to help them get through the day! The application will require a user to login with their Queen's University account and will present their class Schedule, Dining Menus, Meal Plan balances, Study Halls etc.

Features

The priorities, in decending importance, are:

  • Necessary
  • Should Have
  • Want
Feature Priority
Login - Full Login Functionality Necessary
Schedule - Fully implemented schedule page Necessary
Food - Shows all dining hall menus for today Necessary
Food - Shows Meal Plan information (Flex Money and Tam numbers) Necessary
Notifications from the app for users schedule Should Have
Home - shows your next class Should Have
Home - List all classes Should Have
Home - classes are clickable to display lecture schedule Should Have
Maps - List off locations for classes Should Have
Maps - List off locations for studying Should Have
Maps - List off locations for food Should Have
Home - List of campus information asynchronously fetched and page updated dynamically Want
Food - shows what's open and automatically goes to the current menu (like breakfast or lunch) Want
Maps - Notify user when they should leave for the coming class Want

Table 1 - All planned app features. The titles are in the format Page Name - feature description

Development

Details front-end and back-end designs and technologies used for implementation.

Front-end Design

The team used Adobe XD to create multiple prototypes of the front-end UI/UX. This program allowed us to include basic user inputs/interactions to perfect the design that was created through extensive research into current related competitive offering and popular design standards like Google's Material Design.

Basic user interaction lifecycle

Diagram 1.1 - A users basic high level navigation around the application

Gif of a basic home screen and user interaction

The following shows a few gifs as examples of the ability of Adobe XD prototype with user interactions in it's final form.

Diagram 1.2 - A gif of the home screen and a user clicking on one of their courses to see the details page

Gif of interaction on schedule screen

Diagram 1.3 - A gif of the user navigating to the schedule screen the home screen and interacting with it

Back-end Design

The application has a non-public API that is used to gather data from Queen's University and the students information. The application will use React-Redux for its data management and Redux-Persist to store the application state on the device. This application state will be updated in asynchronous method calls in certain even listeners in the application. In addition, we will utilize the component lifecycle to update the state when certain components mount (such as the food page fetching the days menus), and these components shall be connected directly to the redux state. We notice a critical aspect will be to manage when a component does update to ensure the proper efficiency of the program. For example, if we fetch the days classes on the schedule screen, there is no need to update and re-render the list of available days.

Implementation

This program is implemented using React Native, specifically expo. This was choosen due to the small development team's requirement for 1 cross platform code base. In addition, the application does not have any requirements for native development and thus we can further simplify and abstract our framework to expo.

qlink's People

Contributors

awebsters avatar hatimbe avatar hatimbel avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.