Panoramica
Il prodotto consente di porre domande, rispondere con contenuti ricchi, votare, salvare contenuti, consultare profili, esplorare tag e trovare lavori. La UX è curata con dark mode, filtri, paginazione e micro‑interazioni. L’architettura sfrutta le strategie di rendering moderne di Next.js e “server actions” per operazioni lato server.
Funzionalità principali
- Autenticazione: accesso con Email/Password, Google e GitHub (NextAuth).
- Esempio:
await signIn("github")
- Home & feed: domande con filtri, ricerca e paginazione.
- Dettaglio domanda: contenuti ricchi (immagini, code blocks) e thread risposte.
- Voting:
upvote/downvote su domande e risposte. - Bookmarking: salva domande in collezioni personali.
- AI Answers: generazione di risposte assistita dall’AI.
- Tag: pagina tag, conteggi e dettaglio per tag.
- Profili & badge: pagina utente con badge, reputazione e storico interazioni.
- Job Finder: annunci con filtri e ricerca contestuale.
- Ricerca globale: contenuti trasversali (domande, utenti, tag).
Integrazioni e data layer
- Database: MongoDB con Mongoose (modelli per utenti, domande, risposte, voti, tag, collezioni).
- Esempio:
await mongoose.connect(MONGODB_URI)
- Validazioni: schemi Zod coerenti tra form e server.
- Esempio:
z.object({ title: z.string().min(3) })
- AI: uso del pacchetto
ai con provider OpenAI per risposte assistite. - Form: React Hook Form + Zod resolver.
- Esempio:
useForm({ resolver: zodResolver(schema) })
- Logging: Pino per log strutturati.
UX e performance
- UI: Tailwind + componenti Shadcn per accessibilità.
- MDX Editor: editing avanzato, tema light/dark, evidenziazione codice.
- Performance: lazy per media, liste paginate, caching UI e ottimizzazioni su query/filtri.
- Dark mode: theming consistente a livello app.
Highlight tecnico
- Next.js 15 + React 19 + TypeScript.
- NextAuth (Email/Password, GitHub, Google).
- MongoDB/Mongoose per dati e relazioni.
- AI con
ai + @ai-sdk/openai. - MDX Editor per contenuti ricchi e code highlighting.
- Zod + React Hook Form per validazioni robuste.
- Tailwind + Shadcn UI per un design accessibile e moderno.
- Ricerca globale, job finder, gamification (badge) e salvataggi.