Skip to content

Commit

Permalink
Merge branch 'main' of github.com:aleiepure/WalkAware
Browse files Browse the repository at this point in the history
  • Loading branch information
rikirandon committed Jun 3, 2024
2 parents fc99d35 + ff087e1 commit 25f061b
Show file tree
Hide file tree
Showing 8 changed files with 127 additions and 80 deletions.
59 changes: 40 additions & 19 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,42 +1,63 @@
# WalkAware Trento
<div align="center">
<h1><img src="./icon.png" height="128"/><br>WalkAware Trento</h1>
</div>
<div align="center">
<a href="/~https://github.com/aleiepure/WalkAware/actions/workflows/test.yaml" title="Tests status">
<img src="/~https://github.com/aleiepure/WalkAware/actions/workflows/test.yaml/badge.svg"/>
</a>
<a href="/~https://github.com/aleiepure/WalkAware/actions/workflows/deploy.yaml" title="Deploy to Render status">
<img src="/~https://github.com/aleiepure/WalkAware/actions/workflows/deploy.yaml/badge.svg"></img>
</a>
</div>

Progetto per il corso di Ingegneria del software, prof. Sandro Fiore - Università degli studi di Trento.

## Descrizione

Walkaware Trento si propone di aiutare il comune di Trento a migliorare alcuni aspetti della città.
Il progetto si suddivide in due applicazioni rivolte a due categorie di utenti diverse.

Il progetto si suddivide in due applicazioni rivolte a due categorie di utenti diverse:
La prima è un'app mobile rivolta ai cittadini. L’interfaccia si presenta come una mappa e una barra di ricerca tramite la quale l’utente può cercare luoghi e ottenere indicazioni stradali come pedone. I passi dell'utente vengono registrati sotto forma di punti, che potranno poi essere utilizzati per ottenere buoni sconto per esercizi e attrazioni locali. Inoltre l’utente può inviare segnalazioni se incontra dei problemi nelle infrastrutture dislocate sul territorio.

1. Un'app mobile dedicata ai cittadini, dove l’utente viene incentivato a camminare e segnalare problemi sul territorio. I punti accumulati con le azioni precedenti possono essere utilizzati in eventi culturali e negozi locali.
La seconda parte è una web app che aggrega i dati prodotti dai cittadini, permette l'amministrazione delle informazioni sulle aziende convenzionate e i premi messi a disposizione, suggerisce luoghi d’interesse che appariranno sulla mappa e consente la gestione delle segnalazioni.

2. Un'app web dedicata al supporto tecnico e a dipendenti del comune. Questa raccoglie i dati relativi agli utenti mobile e delle aziende convenzionate.
## Come usare

## Requisiti
- Node.js
- Database MongoDB
- Account Cloudflare R2
### In cloud

## Come usare
Il servizio web é disponibile in cloud ai seguenti link:
Il servizio è fruibile in cloud ai seguenti indirizzi

- [WalkAware Trento Backend](https://walkaware.onrender.com/)

- [WalkAware Trento Frontend](https://walkaware-frontend.onrender.com)

- L'applicazione mobile è scaricabile nell'[ultima release](/~https://github.com/aleiepure/WalkAware/releases/latest)

Altrmenti seguire i passi successivi per eseguire l'app in locale.
### In locale

#### Dipendenze

- Node.js
- Database MongoDB
- Account Cloudflare R2

#### Istruzioni

Seguire i seguenti passaggi

1. Clona repository:
``` bash
git clone /~https://github.com/aleiepure/WalkAware.git
cd WalkAware

``` shell
git clone /~https://github.com/aleiepure/WalkAware.git && cd WalkAware
```
Per i prossimi passi da seguire fare riferimento ai relativi README.md di [backend](./backend/README.md), [frontend](./frontend/webapp/README.md) e [Mobile App](./frontend/mobile/README.md).


2. Segui le istruzioni nei file README nelle sottocartelle [backend/](./backend/README.md), [frontend/webapp/](./frontend/webapp/README.md) e [frontend/mobile/](./frontend/mobile/README.md).

## Organizzazione Repository

```shell
├── backend
├── frontend
│   ├── mobile
│   └── webapp
└── readme.md
```
└── README.md
```
48 changes: 30 additions & 18 deletions backend/README.md
Original file line number Diff line number Diff line change
@@ -1,51 +1,63 @@
# WalkAware Trento Backend
# WalkAware Trento - Backend

Il backend è sviluppato utilizzando Express.js e offre una serie di API RESTful per gestire diverse funzionalità dell'applicazione.

Il servizio è eseguibile in cloud a questo indirizzo: [WalkAware Trento Backend](https://walkaware.onrender.com/), per eseguire l'app in locale seguire le seguenti indicazioni.


## Come usare
1. Clonare il repository se non è già stato fatto:
``` bash
git clone /~https://github.com/aleiepure/WalkAware.git
cd WalkAware/backend

1. Dopo ever [clonato la repo](../../README.md#istruzioni) entrare nella cartella del backend

``` shell
cd backend
```
2. Installa le dipendenze:
``` bash

2. Installa le dipendenze

``` shell
npm install
```

### Configurazione
Crea un file .env nella radice della cartella e aggiungi le seguenti variabili d'ambiente:
```bash

Crea un file `.env` nella radice della cartella e aggiungi le seguenti variabili d'ambiente

```shell
SUPER_SECRET="password generazione jwt token"
MONGODB_URI="uri database mongodb production"
MONGODB_URI_TEST="uri database mongodb test"
R2_ACCOUNT_ID="R2 account id"
R2_ACCESS_KEY_ID="R2 chiave di accesso"
R2_SECRET_ACCESS_KEY="R2 chiave segreta di accesso"
```
Assicurarsi di sostituire con i valori corretti.

Assicurarsi di sostituire con i valori corretti.

### Esecuzione

Per avviare il server in modalità di production:
```bash

```shell
node ./index.js
```

Per avviare il server in modalità di sviluppo:
```bash

```shell
npm run run-dev
```

## Test
I test sono stati sviluppati utilizzando un database apposito e per evitare problemi i file devono essere esguiti sequanzialmente, richiamando lo script presente in package.json con:
```bash
npm run seqtest
Tutte le API REST sono state accuratamente testate tramite unit test. Per eseguire tutti i test usare il comando

```shell
npm test
```

## API

La documentazione delle API è accessibile ai seguenti link:
- https://walkaware.docs.apiary.io
- https://walkaware.onrender.com/api-docs

- <https://walkaware.docs.apiary.io>

- <https://walkaware.onrender.com/api-docs>
31 changes: 19 additions & 12 deletions frontend/mobile/README.md
Original file line number Diff line number Diff line change
@@ -1,29 +1,36 @@
# WalkAware Trento Frontend App Mobile
# WalkAware Trento - Frontend App Mobile

L'applicazione mobile è sviluppata in Flutter ed è dedicata agli abitanti della città di Trento.

L'app già compilata è scaricabile nell'[ultima release](/~https://github.com/aleiepure/WalkAware/releases/latest). Per eseguirla con un altro backend seguire le seguenti indicazioni.

## Requisiti

- [Flutter](https://docs.flutter.dev/get-started/install)

## Come usare
1. Clonare il repository se non è già stato fatto:
``` bash
git clone /~https://github.com/aleiepure/WalkAware.git
cd WalkAware/frontend/mobile

1. Dopo ever [clonato la repo](../../README.md#istruzioni) entrare nella cartella del progetto flutter

``` shell
cd frontend/mobile
```
2. Per configurare mapbox seguire la sezione "secret token" a questo [link](https://pub.dev/packages/mapbox_maps_flutter#installation)

2. Configurare Mapbox seguendo la sezione "secret token" a questo [link](https://pub.dev/packages/mapbox_maps_flutter#installation)

3. Installa le dipendenze
```bash

```shell
flutter pub get
```
4. Compila l'applicazione:
``` bash
flutter build apk --dart-define PUBLIC_ACCESS_TOKEN=<token di accesso> \

4. Esegui l'applicazione su un dispositivo Android con debug abilitato

``` shell
flutter run --dart-define PUBLIC_ACCESS_TOKEN=<token di accesso> \
--dart-define BACKEND_BASE_URL=<URL BACKEND> \
--dart-define FRONTEND_BASE_URL=<URL FRONTEND> \
--dart-define JWT_SECRET=<jwt secret token uguale al backend>
```

Assicurarsi di sostituire con i valori corretti.

Assicurarsi di sostituire i valori corretti.
2 changes: 1 addition & 1 deletion frontend/mobile/lib/pages/coupon_details_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ class CouponDetailsPage extends StatelessWidget {
Padding(
padding: const EdgeInsets.all(16.0),
child: QrImageView(
data: '$_frontendBaseUrl/valida?premioId=${coupon.id}',
data: '$_frontendBaseUrl/valida_buono?buono=${coupon.id}',
version: QrVersions.auto,
size: 192,
),
Expand Down
4 changes: 2 additions & 2 deletions frontend/mobile/lib/pages/onboarding.dart
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@ class _OnboardingPageState extends State<OnboardingPage> {
pages: [
PageViewModel(
title: "Ciao!",
body: "Benvenuto in WalkAware Trento, l'app che ti premia quando sei in giro per la città di Trento.",
body: "Benvenuto/a in WalkAware Trento, l'app che ti premia quando sei in giro per la città di Trento.",
decoration: pageDecoration,
image: const Icon(Icons.waving_hand, size: 200),
),
Expand All @@ -164,7 +164,7 @@ class _OnboardingPageState extends State<OnboardingPage> {
PageViewModel(
title: "Tieni gli occhi aperti",
body:
"Se noti qualcosa malfunzionante o pericoloso lungo il tuo percorso, segnalalo. Aiuterai il Comune di Trento a sistemarlo più in fretta e guadagnerai 1 punto extra!",
"Se noti qualcosa malfunzionante o pericoloso lungo il tuo percorso, segnalalo. Aiuterai il Comune di Trento a sistemarlo più in fretta.",
decoration: pageDecoration,
image: const Icon(Icons.report, size: 200),
),
Expand Down
24 changes: 12 additions & 12 deletions frontend/mobile/lib/pages/register_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ class _RegisterPageState extends State<RegisterPage> {
icon: Icon(Icons.alternate_email, size: 48, color: Theme.of(context).colorScheme.secondary),
title: const Text('Conferma la tua email'),
content:
const Text('Dobbiamo essere sicuri che sei proprio tu. Segui le istruzioni nella mail che hai ricevuto per confermare il tuo account.'),
const Text('Dobbiamo essere sicuri che sei proprio tu. Segui le istruzioni nella mail che hai ricevuto per confermare il tuo account. (Email non implementata.)'),
actions: <Widget>[
TextButton(
onPressed: _onShowEmailConfirmationDialogButtonPressed,
Expand All @@ -64,16 +64,16 @@ class _RegisterPageState extends State<RegisterPage> {
/// The method will close the bottom sheet, open the email app and navigate to the login page.
void _onShowEmailConfirmationDialogButtonPressed() {
// Open the email app
if (Platform.isAndroid) {
AndroidIntent intent = const AndroidIntent(
action: 'android.intent.action.MAIN',
category: 'android.intent.category.APP_EMAIL',
flags: [Flag.FLAG_ACTIVITY_NEW_TASK],
);
intent.launch();
} else if (Platform.isIOS) {
launchUrl(Uri.parse('message://'));
}
// if (Platform.isAndroid) {
// AndroidIntent intent = const AndroidIntent(
// action: 'android.intent.action.MAIN',
// category: 'android.intent.category.APP_EMAIL',
// flags: [Flag.FLAG_ACTIVITY_NEW_TASK],
// );
// intent.launch();
// } else if (Platform.isIOS) {
// launchUrl(Uri.parse('message://'));
// }

// Close the dialog
Navigator.of(context).pop();
Expand Down Expand Up @@ -143,7 +143,7 @@ class _RegisterPageState extends State<RegisterPage> {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: const Text('Errore durante la registrazione'),
backgroundColor: Theme.of(context).colorScheme.primary,
backgroundColor: Theme.of(context).colorScheme.error,
),
);
}
Expand Down
39 changes: 23 additions & 16 deletions frontend/webapp/README.md
Original file line number Diff line number Diff line change
@@ -1,37 +1,44 @@
# WalkAware Trento Frontend WebApp
Il frontend offre una Web App sviluppata con Express.js ed ejs. Questa è dedicata al supporto tecnico e ai dipendenti del comune di Trento.
# WalkAware Trento - Frontend WebApp

Il servizio è eseguibile in cloud a questo indirizzo: [WalkAware Trento Frontend](https://walkaware-frontend.onrender.com/), per eseguire l'app in locale seguire le seguenti indicazioni.
Il frontend offre una Web App sviluppata con Express.js ed ejs. Questa è dedicata al supporto tecnico e ai dipendenti del comune di Trento.

Il servizio è eseguibile in cloud a questo indirizzo: [WalkAware Trento Frontend](https://walkaware-frontend.onrender.com/), per eseguire l'app in locale seguire le seguenti indicazioni.

## Come usare
1. Clonare il repository se non è già stato fatto:
``` bash
git clone /~https://github.com/aleiepure/WalkAware.git
cd WalkAware/frontend/webapp

1. Dopo ever [clonato la repo](../../README.md#istruzioni) entrare nella cartella della webapp

``` shell
cd frontend/webapp
```

2. Installa le dipendenze:
``` bash

``` shell
npm install
```

### Configurazione
Crea un file .env nella radice della cartella e aggiungi le seguenti variabili d'ambiente:
```bash

Crea un file `.env` nella radice della cartella e aggiungi le seguenti variabili d'ambiente:

```shell
SUPER_SECRET="password generazione jwt token"
BACKEND_BASE_URL="URL backend"
```
Assicurarsi di sostituire con i valori corretti.

Assicurarsi di sostituire con i valori corretti.

### Esecuzione

Per avviare il server in modalità di production:
```bash

```shell
node ./index.js
```

Per avviare il server in modalità di sviluppo:
```bash

```shell
npm run run-dev
```



Binary file added icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 25f061b

Please sign in to comment.