Business Client need Web Development
Contact person: Business Client
Phone:Show
Email:Show
Location: Forlì, Italy
Budget: Recommended by industry experts
Time to start: As soon as possible
Project description:
"[login to view URL] — Specifica completa (Front User + Back Admin) v1
Modalità: Start per utente (7 giorni dal primo accesso al caso)
1) Scopo del sito
[login to view URL] è una piattaforma di gioco online “thriller elegante”
Ogni Caso è una mini-serie composta da 7 Giorni (G1…G7), pensata per ~15 minuti al giorno.
Di fatto è una caccia al tesoro, dove ogni giorno vengono pubblicati degli indizi da cercare sul web, ed ogni giorno a indizio trovato ci sarà un nuovo indizio, il tutto per 7 giorni, con classifica finale del tempo impiegato dalla pubblicazione dell’indizio e della risposta durante i 7 giorni. Di fatto ci sarà una specie di hall of fame che è la ricompensa per chi trova gli indizi giusti nel minor tempo possibile durante i 7 giorni.
Il sito deve permettere a un utente di:
1. registrarsi e accedere (email+password / Google / Facebook)
2. acquistare un singolo Caso oppure un abbonamento mensile con rinnovo automatico
3. pagare con PayPal o con carta (credito/debito/prepagata incl. Postepay)
4. giocare il Caso in 7 giorni con sblocco progressivo
5. completare il Caso inserendo la Soluzione finale + Case ID.
2) Modello commerciale e prezzi (configurabili)
• Acquisto singolo Caso: €7,90
• Abbonamento mensile (recurring): €14,90/mese, rinnovo automatico finché l’utente non disdice
(4 casi al mese: 1 a settimana, più accesso archivio — vedi regole)
I prezzi devono essere parametrici (config o admin), non hardcoded.
3) Ruoli e permessi
3.1 Visitor
• vede pagine pubbliche, teaser casi, pricing
• può registrarsi/accedere
• non vede contenuti completi dei casi
3.2 User (loggato)
• dashboard personale
• accesso ai casi acquistati o inclusi da subscription
• gameplay 7 giorni, invio codici, completamento
• profilo (nickname, preferenze)
3.3 Admin
• crea/modifica/pubblica casi
• gestisce contenuti e regole dei 7 giorni
• vede statistiche, completamenti, tentativi
• gestisce utenti e accessi
4) Registrazione / Login (obbligatorio)
4.1 Metodi
• Email + password
o verifica email
o reset password
• Google OAuth
• Facebook OAuth
4.2 Sicurezza minima
• rate limiting login
• password policy (min 8 char)
• sessioni sicure (token/cookie HttpOnly)
• log eventi (login falliti ripetuti)
5) Pagamenti (obbligatorio)
5.1 Metodi pagamento
• PayPal
• Carta (credito/debito/prepagata incl. Postepay)
5.2 Prodotti
• Single Case €7,90 (one-time)
• Monthly Subscription €14,90/mese (auto-renew)
5.3 Regole subscription
• rinnovo automatico finché l’utente non disdice
• disdetta: resta attiva fino a fine periodo già pagato
• eventuale payment failed: gestire stato “past_due” e grace period (se previsto)
5.4 Integrazione tecnica pagamenti
Il backend deve gestire webhooks/eventi del provider:
• checkout completato (single) → assegna accesso al caso
• subscription created → accesso subscription attivo
• subscription renewed → estende scadenza
• subscription canceled → cancel_at_period_end = true
• subscription ended → disattiva accesso
• refund/chargeback → revoca accesso (regola definita)
6) Regole di accesso (Entitlements)
6.1 Tipi
• CASE_PURCHASED(case_id) → accesso a quel caso
• SUBSCRIPTION_ACTIVE → accesso ai casi mentre attiva
6.2 Regole consigliate
• subscription attiva: accesso a tutti i casi pubblicati (incluso archivio)
• singolo caso: accesso a quel caso permanente
• se subscription termina: l’utente perde accesso “all inclusive” ma mantiene i casi acquistati singolarmente
Se vuoi un comportamento diverso (es: subscription solo per casi rilasciati nel periodo), va deciso prima.
7) Gameplay: Caso strutturato su 7 Giorni (Start per utente)
7.1 “Start per utente” (regola fissata)
Ogni utente ha un proprio calendario interno per ogni Caso.
• Quando un utente apre un Caso per la prima volta, viene impostato started_at = now.
• I Giorni vengono sbloccati con offset da started_at:
o Giorno 1: 0h
o Giorno 2: +24h
o Giorno 3: +48h
o …
o Giorno 7: +144h
Progress gate: per accedere al Giorno N, serve anche aver completato il Giorno N-1.
Quindi: anche se sono passate 72h, se non hai completato G2, non vai a G4.
7.2 Stati Giorno
Per ogni giorno e per ogni utente:
• LOCKED (non disponibile: manca tempo e/o manca completamento giorno precedente)
• AVAILABLE (disponibile ma non completato)
• COMPLETED (completato)
8) Meccanismo Case ID (obbligatorio)
8.1 Definizione
Per ogni coppia (utente, caso) il sistema genera un Case ID alfanumerico univoco:
• esempio: EW-7K4P-19QX
8.2 Generazione
• generato al primo accesso al Caso (quando si crea user_case_state)
8.3 Visualizzazione
• sempre visibile nella pagina Caso (header/box)
• visibile in Dashboard sul caso attivo
• visibile nello storico del caso
8.4 Utilizzo finale
Al Giorno 7 l’utente invia:
• soluzione finale (testo)
• Case ID (precompilato e non editabile lato UI)
Backend valida:
• Case ID appartiene a quell’utente e quel caso
• soluzione corretta (normalizzata)
Se ok → Caso completato + bonus sbloccato.
8.5 Anti-abuso minimo
• rate limit invio codici (es. max 10 tentativi/ora per giorno; max 10/ora finale)
• logging tentativi
• blocco temporaneo se abuso (config admin)
(Opzionale) watermark “Account/Nickname + Case ID” nelle pagine.
9) Pagine FRONT-END (User)
9.1 Pubbliche
1. Home
2. Come funziona
3. Catalogo casi (teaser)
4. Pricing
5. FAQ/Support
6. Legal (Privacy/Terms/Cookie)
9.2 Auth
7. Registrati (email + Google + Facebook)
8. Login
9. Verifica email
10. Reset password
9.3 Utente (loggato)
11. Dashboard
• stato subscription (active / cancel_at_period_end / inactive)
• caso attivo + progresso (X/7)
• bottone “Continua”
• lista casi accessibili
• lista completati
12. Pagina Caso /cases/{slug}
Contenuti obbligatori:
• Titolo caso + status (In corso/Completato)
• Box Case ID
• Timeline G1..G7 con stati + countdown su LOCKED (basato su started_at + offset)
• Selezione giorno (clic su card Giorno)
• Area contenuto Giorno:
o “Previously on…” (testo breve)
o Story content (testo/media)
o Missione web: link terzi (nuova tab)
o Form “Codice del Giorno”
o Esito + progress
o Hint progressivi (se abilitati)
13. Pagina Bonus (solo se caso completato)
• director’s cut, finale, invito live, extra
14. Profilo (nickname + preferenze Hall of Fame)
15. Storico completati
9.4 Tecniche
16. Paywall / Access denied
17. 404
10) BACK-END Admin (pannello)
10.1 Sezioni Admin
1. Admin Dashboard (stats)
2. Casi (lista)
3. Crea/Modifica Caso (metadata)
4. Editor 7 Giorni
o tab Giorno 1..7
o per ogni giorno:
contenuto story (editor)
link esterni (lista)
codice corretto giorno (canonical)
hint 1/2/3 + regole hint
unlock offset hours (default 0/24/48/…/144)
5. Soluzione finale Caso (canonical)
6. Utenti (search, entitlements, progress)
7. Submissions (tentativi, filtri, ban/lock)
8. Pagamenti/Subscription (transazioni, stati, log webhook)
9. Hall of Fame (moderazione nickname)
11) Logica backend (regole principali)
11.1 Primo accesso caso
Quando utente apre il caso per la prima volta:
• crea user_case_state con:
o started_at = now
o genera case_id_code
o status = active
• crea 7 record user_case_day_state con unlocked_at = started_at + offset
11.2 Accesso giorno
Un giorno è:
• AVAILABLE se:
o now >= unlocked_at del giorno
o e (day_number == 1 oppure giorno precedente COMPLETED)
• altrimenti LOCKED
11.3 Submit codice del giorno
• verifica entitlement
• verifica giorno AVAILABLE
• normalizza input e confronta con canonical
• se corretto:
o marca COMPLETED
o (opzionale) sblocca immediatamente visibilità “teaser” giorno successivo ma il contenuto resta time-gated
11.4 Submit finale
• solo se giorno 7 AVAILABLE e giorni 1..6 COMPLETED
• verifica Case ID
• verifica soluzione
• marca caso COMPLETED e sblocca bonus
12) Database (schema logico)
• users
• auth_identities
• cases
• case_days
• entitlements
• user_case_state
• user_case_day_state
• submissions
• payments
• subscriptions
• webhook_events
(Campi come da versione precedente; il dev può normalizzare.)
13) Criteri di accettazione (MVP)
• Auth: email+password (verifica), Google, Facebook
• Pagamento: PayPal + Carta, single €7,90 + subscription €14,90 auto-renew + disdetta
• Caso: start per utente, 7 giorni con countdown e progress gate
• Case ID generato e visibile
• Codici giorno + soluzione finale + Case ID validano completamento
• Admin: CRUD casi + editor 7 giorni + gestione utenti + log tentativi" (client-provided description)
Matched companies (5)

HJP Media

WhizzAct Private Limited

B2Bcert ISO consultants in Bangalore

SYNERGIC SOFTEK SOLUTIONS PVT LTD
