TurfMania is a modern web application for booking and managing sports turfs. Built with Next.js, TypeScript, and MongoDB, it provides a seamless experience for both players and turf owners.
- Browse available turfs with detailed information and images
- Book turfs for specific dates and time slots
- Manage bookings (view, cancel, upcoming/past separation)
- Owner dashboard for managing turf listings and bookings
- Secure authentication (NextAuth, Google, credentials)
- Responsive UI with custom components and animations
- File upload support for turf images
- Review system for players
- Install dependencies:
npm install
- Set up environment variables:
- Copy
.env.exampleto.env.localand fill in required values (MongoDB URI, Google OAuth, NextAuth secret, Cloudinary, etc.)
- Copy
- Run the development server:
npm run dev
- Open the app: Visit http://localhost:3000 in your browser.
app/- Next.js app directory (routing, pages, API routes)components/- Reusable React componentsmodels/- Mongoose models for MongoDBservices/- Business logic and data accessdto/- Data transfer objectslib/- Utility functions and configurationpublic/- Static assets and images
- Next.js 15+
- TypeScript
- MongoDB & Mongoose
- NextAuth.js
- Framer Motion
- Cloudinary
- Tailwind CSS
Deploy easily on Vercel or your preferred platform. See Next.js documentation for more details.
Just want to test the site without going through all that trouble? We have got you covered, visit: Demo for a first-hand experience.
Contributions are welcome! Please open issues or submit pull requests for improvements and bug fixes.
This project is licensed under the MIT License.
- Edit Turf Details (Owner)
- Profile settings for the owners
- Notifications functionalities for both owners and players
- Finish the future work tasks
- Some remaining issues in the product backlog
- Test the website throughly