A modern web platform for selling beats with a subscription-based model and credit system. Users can subscribe monthly to receive credits which can be used to purchase beats.
- Python 3.9+
- Flask - Web framework
- SQLAlchemy - Database ORM
- Flask-Login - User authentication
- Flask-Migrate - Database migrations
- Stripe - Payment processing
- PostgreSQL - Database
- HTML5
- CSS3
- TypeScript
- Next.js 14 - Frontend framework with server-side rendering
- Tailwind CSS - Styling
- Axios - HTTP client
- React Router - Client-side routing
- Git - Version control
- Docker - Containerization (optional)
- npm - Package management for frontend
- pip - Package management for backend
- 🎵 Beat marketplace with audio preview
- 💳 Subscription-based model
- 🪙 Credit system for purchasing beats
- 👤 User authentication and profiles
- 🛒 Shopping cart functionality
- 💰 Secure payment processing
- 📱 Responsive design
- 🎨 Modern UI/UX
beat-publishing-website/
├── backend/
│ ├── app/
│ │ ├── models/
│ │ ├── routes/
│ │ ├── services/
│ │ └── utils/
│ ├── migrations/
│ ├── config.py
│ └── requirements.txt
├── frontend/
│ ├── public/
│ ├── src/
│ │ ├── components/
│ │ ├── pages/
│ │ ├── services/
│ │ └── styles/
│ ├── package.json
│ └── tailwind.config.js
└── README.md
- Python 3.9 or higher
- Node.js 16.x or higher
- npm 8.x or higher
- PostgreSQL 13 or higher
Flask==3.0.0
Flask-SQLAlchemy==3.1.1
Flask-Login==0.6.3
Flask-WTF==1.2.1
Flask-Migrate==4.0.5
python-dotenv==1.0.0
stripe==7.10.0
bcrypt==4.1.2
email-validator==2.1.0.post1
Key dependencies will be managed through package.json:
- next
- typescript
- @types/react
- @types/node
- tailwindcss
- axios
- @headlessui/react
- @heroicons/react
-
Clone the repository
-
Set up the backend:
cd backend python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate pip install -r requirements.txt
-
Set up the frontend:
cd frontend npx create-next-app@latest . --typescript --tailwind --eslint npm install axios @headlessui/react @heroicons/react
-
Set up environment variables: Create a
.envfile in the backend directory with:FLASK_APP=app FLASK_ENV=development DATABASE_URL=postgresql://localhost/beat_publishing STRIPE_SECRET_KEY=your_stripe_secret_key STRIPE_PUBLISHABLE_KEY=your_stripe_publishable_key -
Initialize the database:
flask db upgrade
-
Run the application:
- Backend:
flask run - Frontend:
npm run dev
- Backend:
- 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
This project is licensed under the MIT License - see the LICENSE file for details