-# Fury's Wheel - Spin & Win
A Next.js application featuring a spinning wheel game with user authentication and API documentation.
- Interactive spinning wheel game
- User authentication (Local & Discord)
- Swagger API documentation
- Responsive design
- Dark mode support
- PostgreSQL database integration
- Prisma ORM
- Framework: Next.js 14
- Language: TypeScript
- Styling: Tailwind CSS
- UI Components: shadcn/ui
- Authentication: Custom + Discord OAuth
- Database: PostgreSQL
- ORM: Prisma
- API Documentation: Swagger UI
- Animation: Framer Motion
- Clone the repository:
git clone https://github.com/yourusername/furys-wheel.git
cd furys-wheel- Install dependencies:
yarn install- Copy the environment variables:
cp .env.example .env-
Set up your environment variables in
.env -
Set up the database:
npx prisma generate
npx prisma db push- Run the development server:
yarn devCopy .env.example to .env and fill in your values. See .env.example for required variables.
Access the API documentation at /api-docs when running the development server.
The main database schema includes:
- Users (authentication, profiles)
- Game history
- Prizes configuration
See prisma/schema.prisma for complete schema details.
The application supports:
- Local authentication (username/password)
- Discord OAuth integration
The wheel spinning mechanism uses:
- Custom React hooks for state management
- Framer Motion for animations
- Server-side validation for results
The application is fully responsive and optimized for:
- Desktop
- Tablet
- Mobile devices
# Run development server
yarn dev
# Run type checking
yarn type-check
# Run linting
yarn lint
# Build for production
yarn build
# Start production server
yarn startThe application can be deployed to:
- Vercel (recommended)
- Any Node.js hosting platform
This project is licensed under the MIT License - see the LICENSE file for details.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Please use the GitHub Issues tab to report bugs.