Skip to content
/ DIMA Public

Design and Implementation of Mobile Applications Project by Fabrizio Siciliano and Alice Casali

License

Notifications You must be signed in to change notification settings

Fabs97/DIMA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

codecov Flutter

CityLife

A Flutter application made for the Design and Implementation of Mobile Applications Course at Politecnico di Milano.

Scope

The scope of the application requires the end users to collect reliable information regarding the surroundings' conditions. Given the high engagement rates that are required by the Customer, the application must support a quick access flow, a reward system, and a easy-to-use input flow. In addition, a periodical data analysis executed retrospectively with large data quantities input by the users will be conducted, which requires a strong database with easily queryable data.

Features

The state of art of the application includes the following features:

  • One-Tap Logins:
    • Email/Password Login:
      • Email verification
    • Social Login:
      • GitHub
      • Twitter
      • Facebook
      • Google
    • 2 Factors Authentication
  • Impressions insertion:
    • Structural impression flow:
      • Structural impression database data
      • Structural impression image storage
    • Emotional impression flow:
      • Emotional impression database data
      • Emotional impression image storage
  • Impressions in-app analysis:
    • Personal impressions list view
    • City impressions dynamic map
    • Impression detail
  • Personal profile:
    • Profile name editing
    • Technical Role
    • 2 Factor Authentication activation
  • Users engagement:
    • Profile experience
    • Badges screen
    • Badges acquisition

Customer

Fulvio Re Cecconi

Fulvio Re Cecconi, associate professor at Politecnico di Milano - Dipartimento di Architettura, Ingegneria delle Costruzioni e Ambiente Costruito.

Supervisor

Luciano Baresi

Luciano Baresi, full professor at Politecnico di Milano - Dipartimento di Elettronica, Informazione e Bioingegneria.


How to install

Frontend

Prerequisites

The following requirements are needed in order to run the application on an emulator in debug/profile/release mode:

Application installation

In order to run the application, it is required to define a few environmental variables with the formula --dart-define=VAR_KEY=VAR_VALUE. The following variables must be defined:

CITYLIFE_TWITTER_CONSUMER_KEY=(request one to the devs or create one of your own)
CITYLIFE_TWITTER_CONSUMER_SECRET=(request one to the devs or create one of your own)
CITYLIFE_GITHUB_CLIENT_ID=(request one to the devs or create one of your own)
CITYLIFE_GITHUB_CLIENT_SECRET=(request one to the devs or create one of your own)
CITYLIFE_AUTH_REDIRECT_URL=https://citylife-c2d0c.firebaseapp.com/__/auth/handler

Backend

Prerequisites

The following softwares and tools are required in order to locally run the backend.

Application installation

Once you've cloned the repo, please go ahead and execute the following steps:

  • Create a .env file in the ./backend folder with the following environmental variables:
CITYLIFE_ENV="CITYLIFE_ENV" #can either be "development" or "production"
CITYLIFE_DB_URL="CITYLIFE_DB_URL" #should be your production db URL
CITYLIFE_DB_HOST="CITYLIFE_DB_HOST" #should be localhost
CITYLIFE_DB_NAME="CITYLIFE_DB_NAME" #should be the name of your local DB
CITYLIFE_DB_USR="CITYLIFE_DB_USR" #should be the name of the user to which you connect to your local DB
CITYLIFE_DB_PORT="CITYLIFE_DB_PORT" #should be the port of your local DB
CITYLIFE_DB_PWD="CITYLIFE_DB_PWD" #should be the password of the user you use to connect to your local DB

Useful Documents


Brought you with 💗 by Alice Casali and Fabrizio Siciliano

About

Design and Implementation of Mobile Applications Project by Fabrizio Siciliano and Alice Casali

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages