An open API service indexing awesome lists of open source software.

https://github.com/vittoriopiotti/hotelsbooking-app-reactnative

Applicazione per prenotare le stanze di un hotel (ottimizata per IOS)
https://github.com/vittoriopiotti/hotelsbooking-app-reactnative

android app bookings client hotels ios react-native rooms typescript visual-studio-code xcode

Last synced: 15 days ago
JSON representation

Applicazione per prenotare le stanze di un hotel (ottimizata per IOS)

Awesome Lists containing this project

README

        

Icona

# Gestione Hotels

Link al Server di Gestione Hotels: [(link)](https://github.com/vittorioPiotti/Gestione-Hotels-Server)

Applicazione per prenotare le stanze di un Hotel

> [!NOTE]
> Progetto scolastico ๐ŸŽ“ ยท โ…ค

---

### Indice

1. [Riepilogo Prodotto](#riepilogo-prodotto)
2. [Casi d'uso](#casi-duso)
3. [Riepilogo Tecnico](#riepilogo-tecnico)
4. [Implementazioni Future](#implementazioni-future)

---
| Icona | Icona | Icona | Icona | Icona | Icona | Icona | Icona | Icona |
| ------------ | ------------ | ------------ | ------------ | ------------ | ------------ | ------------ | ------------ | ------------ |
| Icona | Icona | Icona| Icona| Icona| Icona| Icona| Icona | Icona |
Icona | Icona | Icona| Icona| Icona| Icona| Icona| Icona| Icona | Icona | | |

---

## Riepilogo Prodotto

### Prodotto

Applicazione Android e IOS per la prenotazione delle stanze di un hotel.

### Scopo

Un cliente puรฒ prenotare la stanza di un albergo scegliendo tra le stanze degli alberghi forniti.

### Casi d'Uso

Le schermate sono state acquisite da dispositivo fisico IOS: Iphone 14 Plus

| Icona | Icona | Icona| Icona|
| ------------ | ------------ | ------------ | ------------ |
|1| 2 | 3 | 4 |

1. L'utente sceglie l'hotel
2. L'utente sceglie la stanza
3. l'utente prenota
4. l'utente sceglie la data

## Riepilogo Tecnico

### Obbiettivo

App Multi Platform in React-Native che gestisce le richieste con un server web

### Indice

1. [Tecnologie](#tecnologie)
2. [Prototyping ](#prototyping)
3. [Testing](#testing)
4. [Distribuzione Locale](#distribuzione-locale)
5. [API](#api)
6. [Albero di Path](#albero-di-path)

---

### Tecnologie

Framework e linguaggi
- React-native v.0.74.0
- Typescript

Comunicazione con server web:
- Uso protocollo HTTPS
- Utilizzo di Fetch
- Sistena di API e Endpoints

### Prototyping

La fase di prototyping รจ stata elaborata tramite gli strumenti offerti da [Figma](https://www.figma.com/files/recents-and-sharing/recently-viewed?fuid=1329721993264671153) da cui รจ stato realizzato il mockup dell'applicazione ([link](https://www.figma.com/design/BpWZ6Xun7IkvYqavXrUkGt/GestioneHotel?node-id=0-1&t=Pr9SRdNo9SgsqGOc-0)).

### Testing

> [!TIP]
> iPhone 14 Plus ([video](https://drive.google.com/file/d/1GU0UdAivfWaAG_9hqdG9vJs4TBVn2FR_/view?pli=1))
> Lโ€™app รจ pronta per essere distribuita.

### Distribuzione Locale

1. Si crea il progetto React-Native dalla guida [React-Native](https://reactnative.dev/docs/environment-setup)
2. Si caricano i file sorgente sostituendo quelli giร  presenti
3. Si segue la guida per il caricamento dei font ([link](https://medium.com/@lewie9021/custom-fonts-in-react-native-85d814ca084))

### API

| Nome API | URL | Parametri | Descrizione |
|-------------------------|----------------------------------------------|-------------------------------------|--------------------------------------------------------------------------------|
| **getBookingsDataApp** | `/api?type=book&method=getBookingsDataApp` | `clientId=${globalId}` | Ottiene i dati delle prenotazioni per il cliente specificato. |
| **newbooking** | `/api?type=book&method=newbooking` | Nessuno | Crea una nuova prenotazione. |
| **getHotelsDataApp** | `/api?type=hotel&method=getHotelsDataApp` | Nessuno | Ottiene i dati di tutti gli hotel. |
| **getHotelDataApp** | `/api?type=hotel&method=getHotelDataApp` | `idHotel=${idAlbergo}` | Ottiene i dati di un hotel specifico. |
| **getHotelRoomsDataApp**| `/api?type=room&method=getHotelRoomsDataApp` | `idHotel=${idAlbergo}` | Ottiene i dati delle stanze di un hotel specifico. |
| **getClientEmail** | `/api?type=auth&method=getClientEmail` | `idClient=${globalId}` | Ottiene l'email del cliente specificato. |
| **editClientEmail** | `/api?type=auth&method=editClientEmail` | Nessuno | Modifica l'email del cliente. |
| **editClientPassw** | `/api?type=auth&method=editClientPassw` | Nessuno | Modifica la password del cliente. |
| **deleteClient** | `/api?type=auth&method=delete` | `authState=client` | Elimina il cliente. |
| **loginClient** | `/api?type=auth&method=login` | `authState=client` | Esegue il login per il cliente. |
| **dynamicClientMethod** | `/api?type=auth&method=${apiMethod}` | Nessuno | Esegue una richiesta dinamica del client basata sul metodo specificato. |

### Albero di Path

```bash
$ tree
.
โ””โ”€โ”€ src
โ”œโ”€โ”€ assets
โ”‚ โ”œโ”€โ”€ fonts
โ”‚ โ””โ”€โ”€ images
โ”œโ”€โ”€ scripts
โ”‚ โ”œโ”€โ”€ constants
โ”‚ โ”‚ โ”œโ”€โ”€ activities.tsx
โ”‚ โ”‚ โ”œโ”€โ”€ colors.tsx
โ”‚ โ”‚ โ”œโ”€โ”€ connection.tsx
โ”‚ โ”‚ โ”œโ”€โ”€ fonts.tsx
โ”‚ โ”‚ โ”œโ”€โ”€ images.tsx
โ”‚ โ”‚ โ””โ”€โ”€ screens.tsx
โ”‚ โ”œโ”€โ”€ features
โ”‚ โ”‚ โ”œโ”€โ”€ navigation
โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ Books.tsx
โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ Home.tsx
โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ Hotel.tsx
โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ Room.tsx
โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ Rooms.tsx
โ”‚ โ”‚ โ”œโ”€โ”€ onboarding
โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ Preview.tsx
โ”‚ โ”‚ โ””โ”€โ”€ profile
โ”‚ โ”‚ โ”œโ”€โ”€ Auth.tsx
โ”‚ โ”‚ โ”œโ”€โ”€ Profile.tsx
โ”‚ โ”‚ โ”œโ”€โ”€ Settings.tsx
โ”‚ โ”‚ โ””โ”€โ”€ SignIn.tsx
โ”‚ โ””โ”€โ”€ layouts
โ”‚ โ”œโ”€โ”€ Calendar.tsx
โ”‚ โ”œโ”€โ”€ Footer.tsx
โ”‚ โ”œโ”€โ”€ Header.tsx
โ”‚ โ””โ”€โ”€ Modal.tsx
โ””โ”€โ”€ App.tsx

```

### Implementazioni Future

| Libreria| Routing tra le schermate| Richieste HTTPS| Token di accesso| Sicurezza dei dati|
| ------------| ------------ | ------------ | ------------ | ------------ |
| Versione Attuale | Nessuna| Fetch | Nessuna| Nessuna |
| Versioni Future | [React Navigation](https://www.npmjs.com/package/@react-navigation/native)| [Axios](https://www.npmjs.com/package/axios)| [AsyncStorage](https://www.npmjs.com/package/@react-native-async-storage/async-storage)| [crypto-js](https://www.npmjs.com/package/crypto-js)|

## Licenze

> [!WARNING]
> Questo software รจ rilasciato sotto la licenza **GPL v3** quindi l'uso, la modifica e la distribuzione del codice sorgente ne deve rispettare i termini.
>
> I contenuti multimediali possono essere soggetti a una **licenza non commerciale** richiedendo l'acquisto di una licenza separata.

> [!NOTE]
> Icone SVG di **Bootstrap**

### HotelsBookingApp

**Copyright** 2024 Vittorio Piotti [(GitHub page)](https://github.com/vittorioPiotti) [(Personal page)](https://vittoriopiotti.altervista.org/)

**Version** [v1.0.0](https://github.com/vittorioPiotti/HotelsBooking-App-ReactNative/releases/tag/v1.0.0)

**License** [GPL-3.0](https://github.com/vittorioPiotti/HotelsBooking-App-ReactNative/blob/main/LICENSE.md)

---

### Calendar

**Copyright** 2024 Vittorio Piotti [(GitHub page)](https://github.com/vittorioPiotti) [(Personal page)](https://vittoriopiotti.altervista.org/)

**Version** [v1.0.0](https://github.com/vittorioPiotti/Calendar-Widget-ReactNative/releases/tag/1.0.0)

**License** [GPL-3.0](https://github.com/vittorioPiotti/Calendario-React-Native/blob/main/LICENSE.md)

---

### Bootstrap Icons

**Copyright** 2011-2018 The Bootstrap Authors

**Version** [v1.11.0](https://blog.getbootstrap.com/2023/09/12/bootstrap-icons-1-11-0/)

**License** [MIT](https://github.com/twbs/icons/blob/main/LICENSE)

---

### React Native

**Copyright** Facebook, Inc.

**Version** [v0.74.0](https://reactnative.dev/blog/2024/04/22/release-0.74)

**License** [MIT](https://github.com/facebook/react-native/blob/main/LICENSE)

---

### NunitoSans

**Copyright** 2016 The Nunito Sans Project Authors

**License** [OFL](https://github.com/googlefonts/NunitoSans/blob/main/OFL.txt)