DOMANDA Idee per un progetto per l'esame universitario di ingegneria del software

Flipp3rix

Utente Attivo
177
33
Salve a tutti, sto al terzo anno (fuori corso :/ ) alla facoltà di informatica, e nel corso di ingegneria del software viene chiesto agli studenti di formare dei piccoli team di 3-4 persone e di realizzare un progetto per sviluppare un prodotto software (non solo codice ed eseguibili ma anche relativa documentazione). Ora il prof ha dato questo vincolo:
Il sistema software dovrà avere una architettura three-tier con un client che implementa il livello
di presentazione, un server che implementa la logica applicativa e un DBMS per la gestione dei
dati. I tre livelli dovranno essere potenzialmente installabili su tre macchine diverse.
A tal riguardo avevo pensato a delle idee tipo:
  1. Generatore procedurale di mappe 2D per giochi di ruolo (non rispetta l'architettura, anche se forzatamente "il client mostra il risultato del calcolo procedurale del server che preleva i
    dati della generazione di base da un db"?)
  2. Porting di un gioco da tavolo (scacchi, gioco dell'oca, impiccato) multiplayer(in rete locale, aspetti relativi alla sicurezza?)
  3. Piattaforma online per prenotare le stampe di documenti in cartolibreria, che consente ad un utente di inviare un file (.pdf, .docx e etc) che vuole stampare (decidendo se fare una stampa a colori o meno)
    alla cartolibreria X che comunicherà in base ad una stima delle pagine da stampare l'orario entro quale le stampa sarà pronta al ritiro e il prezzo totale
  4. Piattaforma online per organizzare match sportivi come partite di calcetto, tennis, basket. che consente di creare gli eventi, invitare i partecipanti e poter cercare il contatto di una struttura adeguata per svolgere la partita.

Ora, nonostante io reputi tutte le idee "mediamente facili" da implementare, alcune hanno più probabilità di essere scartate dal prof, tipo le prime due. Nel dubbio diciamo le possibili candidate sono la 3 e la 4 ma per me ognuna di ste due ha un problema.

Con l'idea numero 3, si presenta il problema del pagamento, che per forza di cose, deve essere implementato online altrimenti può succedere che tizio X manda un file per la stampa, la cartoleria lo stampa ma il tizio non si presenta. Per cui andrebbe gestito un'ipotetica transazione online (via paypal e simili) che sarebbe un'enorme problema, sia dal punto di vista implementativo che a livello di documentazione (specialmente in quest'ultimo tra use cases e simili ci si perde all'infinito).

Per quanto riguarda l'idea numero 4 invece, la vorrei gestire seplicemente con utente X che si registra, cerca le varie strutture presenti nella citta/provincia adatte al suo evento, e nel caso ci comunica valutando prezzi orari e ecc. Ad accordi conclusi si crea il vero e proprio evento. Un problema riguarda la comuncazione tra la stuttura e l'utente (quindi 2 entità separate) sia a livello d'implementazione (quindi una chat) che documentativo. Un'altro è la gestione degli inviti, che non saprei come gestire, dato che una generazione del codice qr per entrare poi nella struttura dipenderebbe dalla struttura in se e sarebbe troppo complicato creare una specie di standard per tutte le strutture sportive...

Le idee che abbiamo avuto ad ora son queste ma come vedete i dubbi son "troppi". Per caso potete suggerirmi qualche idea? O si può rivedere qualcuna delle precedenti? Idee come e-commerce per ora le escludo perchè vorrei evitare sistemi di pagamento da implementare e da documentare.

Grazie in anticipo e scusatemi il muro di testo!
 

Skills07

Moderatore
Staff Forum
Utente Èlite
25,736
7,596
CPU
Ryzen 7 5800x
Dissipatore
Deepcool gammax l240 v2
Scheda Madre
Aourus Gigabyte X-470 ultra gaming
HDD
Samsung Evo 850 250gb,2tb x 2 toshiba P300, 256 Ssd silicon power
RAM
32 gb G.Skill Tridentz 3200 mhz RGB
GPU
KFA2 Rtx 2070 super
Monitor
ASUS TUF QHD 165hz IPS, ITEK GCF 165hz IPS QHD, Samsung Curvo 144hz QHD
PSU
Seasonic Focus 650w 80 platinum
Case
Coolermaster h500p
Periferiche
Asus Tuf Wireless
Net
Fibra Tim 100mb
OS
Windows 10 Pro 64 bit
Guarda io all'università feci qualcosa cosi per quel progetto, una lavagna (paint online) con:
- client scaricabile (ogni utente si registrava al servizio e poi si poteva loggare)
- server Java (RMI) con db su server che gestiva le richieste degli utenti fornite lato client e salvava tutto.
La lavagna era in tempo reale ogni utente vedeva quello che facevano tutti gli altri utenti.

Chiusa la connection la lavagna veniva cancellata, con tutto tracciato nel db.
 

Flipp3rix

Utente Attivo
177
33
Guarda io all'università feci qualcosa cosi per quel progetto, una lavagna (paint online) con:
- client scaricabile (ogni utente si registrava al servizio e poi si poteva loggare)
- server Java (RMI) con db su server che gestiva le richieste degli utenti fornite lato client e salvava tutto.
La lavagna era in tempo reale ogni utente vedeva quello che facevano tutti gli altri utenti.

Chiusa la connection la lavagna veniva cancellata, con tutto tracciato nel db.
Senz'ombra di dubbio un progetto affascinante, ma per me sarebbe inarrivabile lol
 

Skills07

Moderatore
Staff Forum
Utente Èlite
25,736
7,596
CPU
Ryzen 7 5800x
Dissipatore
Deepcool gammax l240 v2
Scheda Madre
Aourus Gigabyte X-470 ultra gaming
HDD
Samsung Evo 850 250gb,2tb x 2 toshiba P300, 256 Ssd silicon power
RAM
32 gb G.Skill Tridentz 3200 mhz RGB
GPU
KFA2 Rtx 2070 super
Monitor
ASUS TUF QHD 165hz IPS, ITEK GCF 165hz IPS QHD, Samsung Curvo 144hz QHD
PSU
Seasonic Focus 650w 80 platinum
Case
Coolermaster h500p
Periferiche
Asus Tuf Wireless
Net
Fibra Tim 100mb
OS
Windows 10 Pro 64 bit
infatti si fa di team, uno fa il db con relativi schemi relazionali.
uno si occupa del client e la sua interfaccia
uno sviluppa il backend + connessioni db
 

alemian95

Utente Attivo
1,022
346
CPU
Intel Core i7 9750H @2.6GHz
Scheda Madre
XPS 15 7590
HDD
WD SN730 NVMe 512GB
RAM
2×8GB SK Hynix 2666MHz
GPU
NVIDIA GeForce GTX 1650
Monitor
HP EliteDisplay E243i (1920×1200)
Case
XPS 15 7590
Periferiche
Mouse: Logitech G403 - Tastiera: Durgod Taurus K320
OS
Windows 10 Home 64 bit
sarebbe troppo complicato creare una specie di standard per tutte le strutture sportive
Io cercherei di gestire più che le strutture, le tipologie di eventi. Mi spiego, dovresti avere più categorie di eventi (calcio a 5, calcio a 7, basket, tennis, ...), per ognuna di queste avere una serie di strutture in grado di ospitare l'evento, quindi ogni struttura avrà una serie di caratteristiche.
Il sistema potrebbe funzionare in questo modo:
- io utente decido di creare un evento X: partita di basket nella struttura Y il giorno Z alle ore T (e prenoto il campo)
- se l'evento è pubblico gli utenti registrati che abitano vicino alla struttura Y ricevono un invito e possono decidere se accettare o meno di partecipare, ovviamente sarà possibile accettare fino all'esaurimento dei posti per l'evento, per esempio se si tratta di una partita di basket si avranno 9 posti disponibili (il primo è per chi crea l'evento)
- se l'evento è privato allora puoi fare in modo che chi crea l'evento possa inserire una lista di utenti che riceveranno l'invito e parteciperanno quelli che accetteranno per prima.

È ovvio che per ogni entità va sviluppata una struttura adeguata per poterla rappresentare in maniera corretta.

Secondo me non è una brutta idea, e ti risparmierebbe anche il doverti studiare la documentazione per gestire i pagamenti online.
 
  • Like
Reactions: Flipp3rix

Ibernato

Utente Èlite
4,114
1,869
OS
Windows 10 Pro
Salve a tutti, sto al terzo anno (fuori corso :/ ) alla facoltà di informatica, e nel corso di ingegneria del software viene chiesto agli studenti di formare dei piccoli team di 3-4 persone e di realizzare un progetto per sviluppare un prodotto software (non solo codice ed eseguibili ma anche relativa documentazione). Ora il prof ha dato questo vincolo:

A tal riguardo avevo pensato a delle idee tipo:
  1. Generatore procedurale di mappe 2D per giochi di ruolo (non rispetta l'architettura, anche se forzatamente "il client mostra il risultato del calcolo procedurale del server che preleva i
    dati della generazione di base da un db"?)
  2. Porting di un gioco da tavolo (scacchi, gioco dell'oca, impiccato) multiplayer(in rete locale, aspetti relativi alla sicurezza?)
  3. Piattaforma online per prenotare le stampe di documenti in cartolibreria, che consente ad un utente di inviare un file (.pdf, .docx e etc) che vuole stampare (decidendo se fare una stampa a colori o meno)
    alla cartolibreria X che comunicherà in base ad una stima delle pagine da stampare l'orario entro quale le stampa sarà pronta al ritiro e il prezzo totale
  4. Piattaforma online per organizzare match sportivi come partite di calcetto, tennis, basket. che consente di creare gli eventi, invitare i partecipanti e poter cercare il contatto di una struttura adeguata per svolgere la partita.

Ora, nonostante io reputi tutte le idee "mediamente facili" da implementare, alcune hanno più probabilità di essere scartate dal prof, tipo le prime due. Nel dubbio diciamo le possibili candidate sono la 3 e la 4 ma per me ognuna di ste due ha un problema.

Con l'idea numero 3, si presenta il problema del pagamento, che per forza di cose, deve essere implementato online altrimenti può succedere che tizio X manda un file per la stampa, la cartoleria lo stampa ma il tizio non si presenta. Per cui andrebbe gestito un'ipotetica transazione online (via paypal e simili) che sarebbe un'enorme problema, sia dal punto di vista implementativo che a livello di documentazione (specialmente in quest'ultimo tra use cases e simili ci si perde all'infinito).

Per quanto riguarda l'idea numero 4 invece, la vorrei gestire seplicemente con utente X che si registra, cerca le varie strutture presenti nella citta/provincia adatte al suo evento, e nel caso ci comunica valutando prezzi orari e ecc. Ad accordi conclusi si crea il vero e proprio evento. Un problema riguarda la comuncazione tra la stuttura e l'utente (quindi 2 entità separate) sia a livello d'implementazione (quindi una chat) che documentativo. Un'altro è la gestione degli inviti, che non saprei come gestire, dato che una generazione del codice qr per entrare poi nella struttura dipenderebbe dalla struttura in se e sarebbe troppo complicato creare una specie di standard per tutte le strutture sportive...

Le idee che abbiamo avuto ad ora son queste ma come vedete i dubbi son "troppi". Per caso potete suggerirmi qualche idea? O si può rivedere qualcuna delle precedenti? Idee come e-commerce per ora le escludo perchè vorrei evitare sistemi di pagamento da implementare e da documentare.

Grazie in anticipo e scusatemi il muro di testo!
Io farei una cosa molto semplice:
- Gestione prenotazione ristorante

Client: accede ed effettua la prenotazione (potresti fare anche una dashboard dove vedi le prenotazioni, accessibile solo dall'admin del ristorante)
Server: riceve i dati e li invia al DB
DB: salvataggio dati

Classica accoppiata semplice ed accessibile in modo free su altervista: PHP + mySQL per server e DB
Altra soluzione per il server: Python (gestione delle API con flusk) + MongoDB. Questo ovviamente lo fai in locale. Se hai un raspberry esce qualcosa di carino :)
Client decidete voi la tecnologia. Io userei Flutter per farlo sia mobile che desktop oppure angular + ionic (sempre mobile e desktop)
 
Ultima modifica:

Entra

oppure Accedi utilizzando

Discussioni Simili

Hot: Sei vaccinato? [sondaggio anonimo]

  • Primo ciclo vaccinale completo (1-2 dosi)

    Voti: 473 79.0%
  • Fatta 1a dose, in attesa della 2a

    Voti: 20 3.3%
  • Sono prenotato per la 1a dose

    Voti: 12 2.0%
  • Non so se vaccinarmi

    Voti: 16 2.7%
  • Non ho intenzione di vacciarmi

    Voti: 61 10.2%
  • Fatta anche la terza dose

    Voti: 17 2.8%