A Flutter application made for the Design and Implementation of Mobile Applications Course at Politecnico di Milano.
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.
The state of art of the application includes the following features:
- One-Tap Logins:
- Email/Password Login:
- Email verification
- Social Login:
- GitHub
- 2 Factors Authentication
- Email/Password Login:
- Impressions insertion:
- Structural impression flow:
- Structural impression database data
- Structural impression image storage
- Emotional impression flow:
- Emotional impression database data
- Emotional impression image storage
- Structural impression flow:
- 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
Fulvio Re Cecconi, associate professor at Politecnico di Milano - Dipartimento di Architettura, Ingegneria delle Costruzioni e Ambiente Costruito.
Luciano Baresi, full professor at Politecnico di Milano - Dipartimento di Elettronica, Informazione e Bioingegneria.
The following requirements are needed in order to run the application on an emulator in debug/profile/release mode:
- Flutter, latest version. Recommended branches are
dev
,stable
andbeta
;
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
The following softwares and tools are required in order to locally run the backend.
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
Brought you with 💗 by Alice Casali and Fabrizio Siciliano