A robust and open-source platform for managing tournaments, leveraging the latest in Next.js, server components, and modern web technologies.
Note This application is currently in development. Stay updated on our progress via Twitter @crosscourt_app. Check out the roadmap below for upcoming features.
CrossCourt Tournament Management aims to provide a comprehensive solution for organizing and managing tournaments, including features like team management, match scheduling, bracket generation, and detailed statistics.
This is not just a template.
While the project is tailored for tournament management, the structure and components can serve as a reference for similar applications.
Note This application utilizes the latest versions of Next.js 13 and React 18, which are still evolving. Some performance issues may arise during testing. Expect possible performance variations when using the application. If you encounter any issues, feel free to report them @crosscourt_app.
- New Next.js
/app
directory - Dynamic Routing, Layouts, Nested Layouts, and Layout Groups
- Data Fetching, Caching, and Mutation handling
- Loading UI for improved user experience
- Custom Route Handlers
- Comprehensive Metadata Management
- Server and Client Components
- API Routes and Middleware integration
- User Authentication using NextAuth.js
- Database interactions using Prisma
- Hosted Database on PlanetScale
- UI Components with Radix UI
- Documentation and Blog powered by MDX and Contentlayer
- Subscription management using Stripe
- Styling with Tailwind CSS
- Data Validation using Zod
- Written in TypeScript
-
Basic tournament creation and management -
User registration and authentication -
Team management functionalities -
Match scheduling automation -
Bracket generation and management -
Statistics tracking and reporting -
Responsive design for various devices - Integration with external calendar APIs for scheduling
- Advanced notification systems
Current limitations and ongoing fixes:
OAuth issues with third-party providers (use email login)Prisma: File not found errors in serverless environmentsNext.js 13: Client navigation not updating<head>
tags correctly- Challenges with catch-all routes and image handling
To set up and run the application locally:
-
Install dependencies using pnpm:
pnpm install
-
Copy
.env.example
to.env.local
and configure the environment variables:cp .env.example .env.local
-
Start the development server:
pnpm dev
-
Seed the database with initial data:
pnpm seed
Licensed under the MIT license.