AthCircle is a comprehensive sports networking platform that connects athletes, teams, and venue owners. Think of it as "LinkedIn meets sports" - a place where players can find teammates, teams can recruit talent, and venues can manage bookings.
- Profile Management: Create detailed sports profiles with skills, experience, and achievements
- Discovery: Find other players, teams, and venues in your area
- Connections: Network with other athletes and build your sports community
- Match Finding: Find and join matches or create your own
- Messaging: Direct messaging with other players
- Team Management: Create and manage your sports team
- Recruitment: Find and recruit talented players
- Match Scheduling: Organize matches with other teams
- Member Management: Manage team roster and roles
- Venue Listing: List your sports facilities
- Slot Management: Create and manage booking slots
- Booking Management: Handle booking requests and confirmations
- Analytics: Track venue performance and bookings
- Frontend: Next.js 14+ with App Router, React, TypeScript
- Styling: Tailwind CSS with custom theme
- Database: PostgreSQL with Prisma ORM
- Authentication: JWT-based authentication
- Validation: Zod schemas
- Icons: Lucide React
- Node.js 18+
- PostgreSQL database
- npm or yarn
-
Clone the repository
git clone https://github.com/yourusername/athcircle.git cd athcircle -
Install dependencies
npm install
-
Set up environment variables
cp .env.example .env
Update
.envwith your database credentials:DATABASE_URL="postgresql://user:password@localhost:5432/athcircle" JWT_SECRET="your-super-secret-jwt-key" -
Set up the database
# Generate Prisma client npx prisma generate # Run migrations npx prisma migrate dev # Seed the database (optional) npx prisma db seed
-
Start the development server
npm run dev
-
Open the app Navigate to http://localhost:3000
athcircle/
βββ app/ # Next.js App Router
β βββ (auth)/ # Auth pages (login, register)
β βββ (dashboard)/ # Dashboard pages
β β βββ bookings/
β β βββ connections/
β β βββ dashboard/
β β βββ discover/
β β βββ matches/
β β βββ messages/
β β βββ notifications/
β β βββ settings/
β βββ api/ # API routes
β β βββ auth/
β β βββ bookings/
β β βββ connections/
β β βββ matches/
β β βββ messages/
β β βββ notifications/
β β βββ players/
β β βββ sports/
β β βββ teams/
β β βββ venues/
β βββ page.tsx # Landing page
βββ components/ # React components
β βββ ui/ # Reusable UI components
βββ lib/ # Utility libraries
β βββ auth.ts # Authentication helpers
β βββ prisma.ts # Prisma client
β βββ validations.ts # Zod schemas
βββ prisma/ # Database
β βββ schema.prisma # Database schema
β βββ seed.ts # Seed data
βββ public/ # Static assets
After seeding the database, you can use these accounts:
| Role | Password | |
|---|---|---|
| Player | john.player@example.com | password123 |
| Player | sarah.player@example.com | password123 |
| Team Manager | mike.team@example.com | password123 |
| Venue Owner | david.venue@example.com | password123 |
- Primary (Deep Navy Blue):
#1E3A5F- Trust, professionalism - Secondary (Energetic Orange):
#FF6B35- Energy, action, sports - Accent (Teal):
#4ECDC4- Fresh, modern appeal - Success:
#10B981 - Warning:
#F59E0B - Destructive:
#EF4444
- Headings: Montserrat (bold, modern)
- Body: Inter (clean, readable)
POST /api/auth/register- Register a new userPOST /api/auth/login- Login user
GET /api/players- List players with filtersGET /api/players/:id- Get player detailsPATCH /api/players/:id- Update player profile
GET /api/teams- List teamsPOST /api/teams- Create a teamGET /api/teams/:id- Get team details
GET /api/venues- List venuesPOST /api/venues- Create a venueGET /api/venues/:id- Get venue details
GET /api/bookings- List bookingsPOST /api/bookings- Create a bookingPATCH /api/bookings/:id- Update booking status
GET /api/matches- List matchesPOST /api/matches- Create a match
GET /api/connections- Get user connectionsPOST /api/connections- Send connection requestPATCH /api/connections/:id- Accept/reject connection
GET /api/messages- Get conversationsPOST /api/messages- Send a message
GET /api/notifications- Get notificationsPATCH /api/notifications- Mark as read
npm run devnpm run buildnpx prisma studionpx prisma migrate reset- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Design inspiration from LinkedIn, Hudl, and modern sports apps
- Icons by Lucide
- UI components inspired by shadcn/ui
Built with β€οΈ by the AthCircle Team