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

I am founder and CEO of HJP Media. The fastest growing AI digital solutions company in the world, offering innovative, AI powered digital marketing a… Read more

...

WhizzAct Private Limited

WhizzAct aims to deliver the supreme service at an effective cost, ensuring complete customer satisfaction. Emphatic use of the latest tools and tech… Read more

...

B2Bcert ISO consultants in Bangalore

B2Bcert is a globally recognized certification and consulting firm dedicated to helping businesses achieve international quality and compliance stand… Read more

...

SYNERGIC SOFTEK SOLUTIONS PVT LTD

Synergic Softek Solutions, based in Kolkata, India, specializes in banking technology, digital innovation, and custom software development. The compa… Read more

...

eShop Genius

We’re in the industry With the experience of 12+years created more than 1200 stores and have build brands! At eShop Genius, we are an ISO certi… Read more