{"id":24664544,"url":"https://github.com/marincervinschi/triviamore","last_synced_at":"2026-04-13T03:41:47.395Z","repository":{"id":273195767,"uuid":"918960254","full_name":"MarinCervinschi/TriviaMore","owner":"MarinCervinschi","description":"Trivia More is a quiz app designed to help you prepare for university exams. Test your knowledge with multiple-choice questions, track your time, and get instant feedback to improve your performance.","archived":false,"fork":false,"pushed_at":"2026-03-25T12:45:49.000Z","size":1660,"stargazers_count":4,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-03-25T12:56:32.893Z","etag":null,"topics":["docker","exam","nextjs","open-source","postgresql","prisma","reactjs","study","trivia-quiz","typescript","university"],"latest_commit_sha":null,"homepage":"https://www.trivia-more.it","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MarinCervinschi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-01-19T10:47:16.000Z","updated_at":"2026-01-12T11:23:55.000Z","dependencies_parsed_at":"2025-03-17T18:28:01.911Z","dependency_job_id":"49807e10-95b0-40d2-9483-4a2f2563877c","html_url":"https://github.com/MarinCervinschi/TriviaMore","commit_stats":null,"previous_names":["marincervinschi/webtechnologyquiz","marincervinschi/triviamore"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/MarinCervinschi/TriviaMore","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarinCervinschi%2FTriviaMore","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarinCervinschi%2FTriviaMore/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarinCervinschi%2FTriviaMore/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarinCervinschi%2FTriviaMore/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MarinCervinschi","download_url":"https://codeload.github.com/MarinCervinschi/TriviaMore/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarinCervinschi%2FTriviaMore/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31739050,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-13T03:27:07.512Z","status":"ssl_error","status_checked_at":"2026-04-13T03:26:53.610Z","response_time":93,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","exam","nextjs","open-source","postgresql","prisma","reactjs","study","trivia-quiz","typescript","university"],"created_at":"2025-01-26T06:13:29.107Z","updated_at":"2026-04-13T03:41:47.388Z","avatar_url":"https://github.com/MarinCervinschi.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Trivia MORE 🎓🧠\n\n[![GitHub license](https://img.shields.io/github/license/MarinCervinschi/TriviaMore?style=for-the-badge)](LICENSE)\n[![GitHub stars](https://img.shields.io/github/stars/MarinCervinschi/TriviaMore?style=for-the-badge)]()\n[![GitHub forks](https://img.shields.io/github/forks/MarinCervinschi/TriviaMore?style=for-the-badge)]()\n[![GitHub issues](https://img.shields.io/github/issues/MarinCervinschi/TriviaMore?style=for-the-badge)]()\n\n**Prepare. Practice. Succeed.**\n\nTrivia MORE is a comprehensive quiz application designed to enhance learning and prepare students for university exams through structured practice and assessment.\n\n## 🌐 Live Demo\n\nVisit the application at [trivia-more.it](https://www.trivia-more.it/)\n\n## 📖 About\n\nTrivia MORE transforms the way students prepare for university exams by providing an interactive, structured learning environment. Built with modern web technologies, it offers a comprehensive quiz platform that adapts to different learning styles and academic needs.\n\nThe application serves as a bridge between traditional study methods and digital learning, offering features like real-time progress tracking, adaptive questioning, and collaborative learning tools. Whether you're a student looking to test your knowledge, an educator wanting to create engaging content, or an administrator managing academic programs, Trivia MORE provides the tools you need to succeed.\n\n## 📋 Table of Contents\n\n- [🏗️ Architecture Overview](#️-architecture-overview)\n- [🚀 Getting Started](#-getting-started)\n- [🐳 Docker Commands](#-docker-commands)\n- [🗄️ Database Management](#️-database-management)\n- [📚 Documentation](#-documentation)\n- [🤝 Contributing](#-contributing)\n- [🐛 Issue Reporting](#-issue-reporting)\n- [📄 License](#-license)\n\n## 🏗️ Architecture Overview\n\nTrivia MORE is built with a modern, scalable architecture designed for performance and maintainability:\n\n```mermaid\ngraph TD\n    A[🖥️ Frontend - Next.js 15] --\u003e B[🔌 API Routes]\n    B --\u003e C[🔐 NextAuth.js v5]\n    B --\u003e D[🗃️ Prisma ORM]\n    D --\u003e E[🐘 PostgreSQL]\n\n    F[🚀 Vercel Edge] --\u003e A\n    G[🌐 Neon Database] --\u003e E\n\n    H[📱 Client Components] --\u003e A\n    I[⚡ Server Components] --\u003e A\n\n    J[🎯 TanStack Query] --\u003e B\n    K[🎨 Radix UI + Tailwind] --\u003e A\n```\n\nFor detailed architecture documentation, see [docs/ARCHITECTURE.md](./docs/ARCHITECTURE.md)\n\n## 🛠️ Tech Stack\n\nOur technology choices are specifically selected to support the architecture above:\n\n### Frontend Layer\n\n[![Next.js](https://img.shields.io/badge/Next.js-15-black?logo=next.js)](https://nextjs.org/) - **App Router** for server-side rendering and optimal performance  \n[![React](https://img.shields.io/badge/React-18-61DAFB?logo=react)](https://reactjs.org/) - **Server \u0026 Client Components** for hybrid rendering  \n[![TypeScript](https://img.shields.io/badge/TypeScript-5.7-3178C6?logo=typescript)](https://www.typescriptlang.org/) - **Type safety** across the entire application  \n[![Tailwind CSS](https://img.shields.io/badge/Tailwind_CSS-3.3-38B2AC?logo=tailwind-css)](https://tailwindcss.com/) - **Utility-first styling** for rapid development  \n[![Radix UI](https://img.shields.io/badge/Radix_UI-Latest-1C1C1C?logo=radix-ui)](https://www.radix-ui.com/) - **Accessible components** foundation  \n[![Framer Motion](https://img.shields.io/badge/Framer_Motion-12-0055FF?logo=framer)](https://www.framer.com/motion/) - **Smooth animations** and transitions  \n[![TanStack Query](https://img.shields.io/badge/TanStack_Query-5-FF4154?logo=react-query)](https://tanstack.com/query) - **Server state management** and caching\n\n### Backend Layer\n\n[![Next.js API](https://img.shields.io/badge/Next.js_API-15-black?logo=next.js)](https://nextjs.org/docs/api-routes/introduction) - **API Routes** with file-based routing  \n[![NextAuth.js](https://img.shields.io/badge/NextAuth.js-5-7C3AED?logo=nextauth)](https://next-auth.js.org/) - **Authentication** with hybrid edge approach  \n[![Prisma](https://img.shields.io/badge/Prisma-6.3-2D3748?logo=prisma)](https://www.prisma.io/) - **Type-safe ORM** with migration support  \n[![PostgreSQL](https://img.shields.io/badge/PostgreSQL-15-336791?logo=postgresql)](https://www.postgresql.org/) - **Robust database** with full ACID compliance  \n[![Zod](https://img.shields.io/badge/Zod-4-3E67B1?logo=zod)](https://zod.dev/) - **Runtime validation** and type inference\n\n### Infrastructure \u0026 DevOps\n\n[![Vercel](https://img.shields.io/badge/Vercel-Latest-000000?logo=vercel)](https://vercel.com/) - **Edge deployment** with global CDN  \n[![Docker](https://img.shields.io/badge/Docker-Latest-2496ED?logo=docker)](https://www.docker.com/) - **Local development** environment  \n[![ESLint](https://img.shields.io/badge/ESLint-8-4B32C3?logo=eslint)](https://eslint.org/) - **Code quality** and consistency  \n[![Prettier](https://img.shields.io/badge/Prettier-3-F7B93E?logo=prettier)](https://prettier.io/) - **Code formatting** standards\n\n## 🚀 Getting Started\n\n### Prerequisites\n\n- **Docker** and **Docker Compose** (recommended for local development)\n- **Node.js** (18+ recommended)\n\n### Environment Setup\n\n1. **Clone the repository**\n\n   ```bash\n   git clone https://github.com/MarinCervinschi/TriviaMore.git\n   cd TriviaMore\n   ```\n\n2. **Configure environment variables**\n\n   Copy the example environment file and configure it:\n\n   ```bash\n   cp .env.example .env\n   ```\n\n   Edit the `.env` file with your specific configuration. The default database URL for local Docker development is already set up.\n\n3. **Install dependencies**\n   ```bash\n   npm install\n   ```\n\n### Local Development with Docker\n\nThe easiest way to run the application locally is using Docker for the database:\n\n1. **Start the PostgreSQL database**\n\n   ```bash\n   docker-compose up -d postgres\n   ```\n\n2. **Set up the database**\n\n   ```bash\n   # Generate Prisma client and push schema to database\n   npm run db:push\n\n   # Seed the database with sample data\n   npm run db:seed\n   ```\n\n3. **Start the development server**\n\n   ```bash\n   npm run dev\n   ```\n\n4. **Open the application**\n\n   Navigate to [http://localhost:3000](http://localhost:3000) in your browser.\n\n## 🐳 Docker Commands\n\n```bash\n# Start the database\ndocker-compose up -d postgres\n\n# Stop the database\ndocker-compose down\n\n# View database logs\ndocker-compose logs postgres\n\n# Access PostgreSQL shell\ndocker-compose exec postgres psql -U postgres -d triviamore\n\n# Restart the database\ndocker-compose restart postgres\n```\n\n## 🗄️ Database Management\n\n### Prisma Commands\n\n```bash\n# Generate Prisma client\nnpx prisma generate\n\n# Push schema changes to database (development)\nnpx prisma db push\n\n# Create and apply migrations (production)\nnpx prisma migrate dev --name \"migration_name\"\n\n# Apply pending migrations\nnpx prisma migrate deploy\n\n# Reset database and apply all migrations\nnpx prisma migrate reset\n\n# Open Prisma Studio\nnpx prisma studio\n\n# Check migration status\nnpx prisma migrate status\n```\n\n## 📚 Documentation\n\n- **[🏗️ Architecture Guide](./docs/ARCHITECTURE.md)** - System design and technical decisions\n- **[🔌 API Reference](./docs/API_DOCUMENTATION.md)** - Complete API documentation\n- **[🔐 Authentication Guide](./docs/AUTH.md)** - Authentication system overview\n\n## 🤝 Contributing\n\nWe welcome contributions! Here's how you can help:\n\n1. **Fork the repository**\n2. **Create a feature branch**\n   ```bash\n   git checkout -b feature/amazing-feature\n   ```\n3. **Make your changes**\n4. **Run tests and linting**\n   ```bash\n   npm run lint\n   npm run format:check\n   ```\n5. **Commit your changes**\n   ```bash\n   git commit -m 'Add some amazing feature'\n   ```\n6. **Push to the branch**\n   ```bash\n   git push origin feature/amazing-feature\n   ```\n7. **Open a Pull Request**\n\n### Development Guidelines\n\n- Follow the existing code style and patterns\n- Write meaningful commit messages\n- Test your changes thoroughly\n- Update documentation when necessary\n- Ensure all linting and formatting checks pass\n\n## 🐛 Issue Reporting\n\nFound a bug or have a feature request? Please use our issue templates:\n\n- **[Bug Report](https://github.com/MarinCervinschi/TriviaMore/issues/new?template=bug_report.md)** - Report bugs or unexpected behavior\n- **[Feature Request](https://github.com/MarinCervinschi/TriviaMore/issues/new?template=feature_request.md)** - Suggest new features or improvements\n\nWhen reporting issues, please include:\n\n- Clear description of the problem\n- Steps to reproduce\n- Expected vs actual behavior\n- Screenshots (if applicable)\n- Environment details (browser, OS, etc.)\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## 👨‍💻 Author\n\n**Marin Cervinschi** - [@MarinCervinschi](https://github.com/MarinCervinschi)\n\n---\n\n⭐ If you find this project helpful, please consider giving it a star!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarincervinschi%2Ftriviamore","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarincervinschi%2Ftriviamore","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarincervinschi%2Ftriviamore/lists"}