{"id":40644021,"url":"https://github.com/babblebey/events-ting","last_synced_at":"2026-01-21T08:11:35.858Z","repository":{"id":323087993,"uuid":"1090449971","full_name":"babblebey/events-ting","owner":"babblebey","description":"The all-in-one event management suite","archived":false,"fork":false,"pushed_at":"2025-11-24T04:07:29.000Z","size":1236,"stargazers_count":0,"open_issues_count":4,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-11-24T05:35:58.283Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/babblebey.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"docs/security/team-permission-checks.md","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-11-05T17:23:18.000Z","updated_at":"2025-11-24T04:07:31.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/babblebey/events-ting","commit_stats":null,"previous_names":["babblebey/events-ting"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/babblebey/events-ting","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/babblebey%2Fevents-ting","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/babblebey%2Fevents-ting/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/babblebey%2Fevents-ting/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/babblebey%2Fevents-ting/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/babblebey","download_url":"https://codeload.github.com/babblebey/events-ting/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/babblebey%2Fevents-ting/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28629922,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-21T04:47:28.174Z","status":"ssl_error","status_checked_at":"2026-01-21T04:47:22.943Z","response_time":86,"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":[],"created_at":"2026-01-21T08:11:35.033Z","updated_at":"2026-01-21T08:11:35.852Z","avatar_url":"https://github.com/babblebey.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Events-Ting 🎉\n\n**All-in-One Event Management System** - Create, manage, and scale your events with ease.\n\nBuilt with the [T3 Stack](https://create.t3.gg/) (Next.js 15, tRPC, Prisma, NextAuth.js, Tailwind CSS).\n\n---\n\n## ✨ Features\n\n- **🎪 Event Management**: Create and manage unlimited events with customizable settings\n- **🎟️ Ticketing \u0026 Registration**: Manage ticket types and attendee registrations (free tickets MVP)\n- **✅ Attendee Check-In**: QR code scanning and manual check-in with real-time metrics\n- **📅 Schedule Builder**: Create event schedules with sessions, tracks, and speaker assignments\n- **📢 Call for Papers (CFP)**: Accept and review session proposals from the community\n- **🎤 Speaker Management**: Manage speaker profiles with photos, bios, and session assignments\n- **👥 Team Collaboration**: Invite team members with granular module-based permissions\n- **📧 Email Campaigns**: Send targeted communications to attendees, speakers, or custom groups\n- **🔒 Authentication**: Secure OAuth login with Google and GitHub\n- **📊 Dashboard Analytics**: Real-time metrics for registrations, attendance, and engagement\n- **🌐 Public Pages**: Beautiful event landing pages with schedules and speaker directories\n- **📱 Mobile-First Design**: Fully responsive UI built with Flowbite React and Tailwind CSS\n\n---\n\n## 🚀 Quick Start\n\n### Prerequisites\n\n- **Node.js** 18+ ([Download](https://nodejs.org/))\n- **pnpm** 10.20+ (install: `npm install -g pnpm`)\n- **PostgreSQL** 14+ (local or [cloud instance](https://vercel.com/postgres))\n\n### Installation\n\n```bash\n# 1. Clone repository\ngit clone https://github.com/babblebey/events-ting.git\ncd events-ting\n\n# 2. Install dependencies\npnpm install\n\n# 3. Set up environment variables\ncp .env.example .env\n# Edit .env with your database URL, NextAuth secret, and API keys\n\n# 4. Run database migrations\npnpm run db:generate\n\n# 5. (Optional) Seed sample data\npnpm run db:seed\n\n# 6. Start development server\npnpm run dev\n```\n\nVisit **http://localhost:3000** 🎉\n\n### Environment Variables\n\nCreate a `.env` file in the project root:\n\n```bash\n# Database\nDATABASE_URL=\"postgresql://user:password@localhost:5432/events_ting_dev\"\n\n# NextAuth.js\nNEXTAUTH_SECRET=\"generate-with: openssl rand -base64 32\"\nNEXTAUTH_URL=\"http://localhost:3000\"\n\n# OAuth Providers (optional)\nGOOGLE_CLIENT_ID=\"your-google-client-id\"\nGOOGLE_CLIENT_SECRET=\"your-google-client-secret\"\nGITHUB_CLIENT_ID=\"your-github-client-id\"\nGITHUB_CLIENT_SECRET=\"your-github-client-secret\"\n\n# Email Service (Resend)\nRESEND_API_KEY=\"re_123456789\" # Get from https://resend.com\n```\n\n**Get API Keys**:\n- **Resend**: Sign up at [resend.com](https://resend.com) for email delivery\n- **Google OAuth**: [Google Cloud Console](https://console.cloud.google.com/) → Create OAuth 2.0 Client\n- **GitHub OAuth**: [GitHub Developer Settings](https://github.com/settings/developers) → New OAuth App\n\nFor detailed setup instructions, see **[quickstart.md](./specs/001-event-management-system/quickstart.md)**.\n\n---\n\n## 🏗️ Tech Stack\n\nThis project uses the **T3 Stack** with additional tools for event management:\n\n| Category | Technology |\n|----------|------------|\n| **Framework** | [Next.js 15](https://nextjs.org/) (App Router) |\n| **Language** | [TypeScript 5.8+](https://www.typescriptlang.org/) (strict mode) |\n| **API Layer** | [tRPC 11](https://trpc.io/) (type-safe APIs) |\n| **Database** | [PostgreSQL](https://www.postgresql.org/) via [Prisma 6](https://www.prisma.io/) |\n| **Authentication** | [NextAuth.js 5](https://next-auth.js.org/) (OAuth + credentials) |\n| **UI Framework** | [React 19](https://react.dev/) |\n| **Styling** | [Tailwind CSS 4](https://tailwindcss.com/) + [Flowbite React](https://flowbite-react.com/) |\n| **Validation** | [Zod 3.24+](https://zod.dev/) |\n| **Email** | [Resend](https://resend.com/) + [React Email](https://react.email/) |\n| **Timezones** | [date-fns](https://date-fns.org/) + [date-fns-tz](https://github.com/marnusw/date-fns-tz) |\n| **Package Manager** | [pnpm 10.20+](https://pnpm.io/) |\n| **Linting** | [ESLint](https://eslint.org/) + [Prettier](https://prettier.io/) |\n\n---\n\n## 📂 Project Structure\n\n```\nsrc/\n├── app/                      # Next.js App Router (pages \u0026 API routes)\n│   ├── (auth)/               # Authentication pages\n│   ├── (dashboard)/          # Protected dashboard routes\n│   │   └── [id]/             # Dynamic event dashboard\n│   ├── events/               # Public event pages\n│   └── api/                  # API route handlers\n├── components/               # React components\n│   ├── ui/                   # Reusable UI components\n│   ├── events/               # Event-specific components\n│   ├── tickets/              # Ticket \u0026 registration components\n│   ├── check-in/             # Attendee check-in components\n│   ├── schedule/             # Schedule components\n│   ├── cfp/                  # Call for Papers components\n│   ├── speakers/             # Speaker components\n│   ├── team/                 # Team collaboration components\n│   └── communications/       # Email campaign components\n├── server/\n│   ├── api/\n│   │   ├── routers/          # tRPC routers (domain-organized)\n│   │   ├── root.ts           # Root router\n│   │   └── trpc.ts           # tRPC configuration\n│   ├── auth/                 # NextAuth.js configuration\n│   ├── services/             # Business logic services\n│   └── db.ts                 # Prisma client\n├── lib/                      # Shared utilities\n│   ├── utils.ts              # Helper functions\n│   ├── validators.ts         # Zod validation schemas\n│   └── constants.ts          # App constants\n└── trpc/                     # tRPC client setup\n\nprisma/\n├── schema.prisma             # Database schema\n└── migrations/               # Database migrations\n\nemails/                       # React Email templates\n└── *.tsx                     # Transactional email templates\n\nspecs/                        # Feature specifications\n```\n\n---\n\n## 🛠️ Development\n\n### Available Commands\n\n```bash\n# Development\npnpm run dev              # Start dev server (http://localhost:3000)\npnpm run build            # Build for production\npnpm run start            # Start production server\n\n# Code Quality\npnpm run check            # Run all checks (lint + typecheck)\npnpm run lint             # Run ESLint\npnpm run lint:fix         # Fix ESLint issues\npnpm run typecheck        # TypeScript type checking\npnpm run format           # Format code with Prettier\npnpm run format:check     # Check code formatting\n\n# Database\npnpm run db:generate      # Run migrations + generate Prisma client\npnpm run db:push          # Push schema changes (dev only)\npnpm run db:studio        # Open Prisma Studio (database GUI)\npnpm run db:seed          # Seed database with sample data\n```\n\n### Development Workflow\n\n1. **Create feature branch**: `git checkout -b feat/your-feature`\n2. **Make changes**: Edit code, update schema if needed\n3. **Run checks**: `pnpm run check` (lint + typecheck)\n4. **Test locally**: `pnpm run dev` and verify in browser\n5. **Commit**: `git commit -m \"feat: your feature description\"`\n6. **Push**: `git push origin feat/your-feature`\n\n### Code Quality Standards\n\nThis project follows strict quality standards:\n\n- ✅ **TypeScript strict mode** (no `any` types allowed)\n- ✅ **ESLint + Prettier** (zero violations policy)\n- ✅ **Server Components by default** (Client Components only when needed)\n- ✅ **tRPC for all API calls** (with Zod validation)\n- ✅ **Mobile-first responsive design**\n- ✅ **WCAG AA accessibility compliance**\n- ✅ **Performance targets**: \u003c2s page load (public), \u003c3s (dashboard)\n\nSee [.specify/memory/constitution.md](./.specify/memory/constitution.md) for full standards.\n\n---\n\n## 📖 Documentation\n\n### Developer Documentation\n\n**📚 [Complete Documentation](./docs/)** - Comprehensive guides for developers\n\n#### Quick Links\n- **[Getting Started Guide](./docs/getting-started.md)** - Set up your local development environment\n- **[Architecture Overview](./docs/architecture/system-overview.md)** - System design and data flows\n- **[Tech Stack Details](./docs/architecture/tech-stack.md)** - Technology choices and versions\n- **[Database Schema](./docs/architecture/data-model.md)** - Complete data model with relationships\n- **[Authentication Guide](./docs/architecture/authentication.md)** - Auth implementation details\n- **[File Structure](./docs/architecture/file-structure.md)** - Project organization guide\n- **[Troubleshooting](./docs/troubleshooting.md)** - Common issues and solutions\n\n#### Module Documentation\n- **[Events](./docs/modules/events/)** - Event creation and management\n- **[Tickets](./docs/modules/tickets/)** - Ticketing and registration\n- **[Attendees](./docs/modules/attendees/)** - Attendee management\n- **[Check-In](./docs/modules/check-in/)** - QR code scanning and attendee check-in\n- **[Schedule](./docs/modules/schedule/)** - Event schedules and sessions\n- **[Speakers](./docs/modules/speakers/)** - Speaker profiles and management\n- **[CFP](./docs/modules/cfp/)** - Call for Papers workflow\n- **[Team](./docs/modules/team/)** - Team collaboration and permissions\n- **[Communications](./docs/modules/communications/)** - Email campaigns\n\n#### API \u0026 Components\n- **[tRPC API Reference](./docs/api/routers.md)** - Complete API documentation\n- **[Component Library](./docs/components/reusable-components.md)** - Reusable UI components\n- **[Forms Guide](./docs/components/forms.md)** - Form patterns and validation\n\n#### Deployment\n- **[Environment Variables](./docs/deployment/environment-variables.md)** - Required configuration\n- **[Database Setup](./docs/deployment/database-setup.md)** - PostgreSQL and migrations\n- **[Vercel Deployment](./docs/deployment/vercel-deployment.md)** - Production deployment guide\n\n### Specifications\n- **[Feature Specification](./specs/001-event-management-system/spec.md)** - Requirements and user stories\n- **[API Contracts](./specs/001-event-management-system/contracts/)** - tRPC router specifications\n- **[Task List](./specs/001-event-management-system/tasks.md)** - Implementation tasks\n\n---\n\n## 🚢 Deployment\n\n### Vercel (Recommended)\n\n[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https://github.com/babblebey/events-ting)\n\n1. **Connect GitHub repository** to Vercel\n2. **Add environment variables** in Vercel dashboard\n3. **Deploy** - Automatic deployments on push to `main`\n\n### Docker\n\n```bash\n# Build Docker image\ndocker build -t events-ting .\n\n# Run container\ndocker run -p 3000:3000 --env-file .env events-ting\n```\n\n### Database\n\nFor production, use a managed PostgreSQL service:\n- [Vercel Postgres](https://vercel.com/postgres)\n- [Supabase](https://supabase.com/)\n- [Neon](https://neon.tech/)\n- [Railway](https://railway.app/)\n\n---\n\n## 🤝 Contributing\n\nContributions are welcome! Please follow these steps:\n\n1. **Fork the repository**\n2. **Create feature branch**: `git checkout -b feat/amazing-feature`\n3. **Make changes** and follow code quality standards\n4. **Run checks**: `pnpm run check`\n5. **Commit**: `git commit -m \"feat: add amazing feature\"`\n6. **Push**: `git push origin feat/amazing-feature`\n7. **Open Pull Request**\n\n---\n\n## 📄 License\n\nThis project is licensed under the **MIT License** - see the [LICENSE](./LICENSE) file for details.\n\n---\n\n## 🙏 Acknowledgments\n\n- Built with [T3 Stack](https://create.t3.gg/)\n- UI components from [Flowbite React](https://flowbite-react.com/)\n- Email templates powered by [React Email](https://react.email/)\n- Email delivery by [Resend](https://resend.com/)\n\n---\n\n## 📧 Support\n\n- **Documentation**: Check the [quickstart guide](./specs/001-event-management-system/quickstart.md)\n- **Issues**: [GitHub Issues](https://github.com/babblebey/events-ting/issues)\n- **Discussions**: [GitHub Discussions](https://github.com/babblebey/events-ting/discussions)\n\n---\n\n**Made with ❤️ using the T3 Stack**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbabblebey%2Fevents-ting","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbabblebey%2Fevents-ting","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbabblebey%2Fevents-ting/lists"}