Warning
This repository is still under active development and should not be used for production purposes (yet). Feel free to fork it and use it as a template but some parts are still unfinished and undocumented.
Ticketeer is a monorepo solution designed for a simple ticketing application. It includes a Laravel API, a Next.js dashboard for administration, and a Next.js frontend for ticket purchasing. This setup allows for easy forking and deployment, making it a versatile choice for various ticketing needs.
- Laravel API: Handles backend operations and data management.
- Next.js Dashboard: Provides an admin interface for managing events, tickets, and users.
- Next.js Frontend: User-facing application for browsing and purchasing tickets.
Ticketeer is structured as a monorepo using Turborepo, which allows for efficient management of multiple projects within a single repository. The monorepo includes:
- Laravel API: Backend operations and data management.
- Next.js Dashboard: Admin interface for managing events, tickets, and users.
- Next.js Frontend: User-facing application for browsing and purchasing tickets.
Turborepo is used to manage and build the different applications within the monorepo. It provides a streamlined way to handle dependencies, build processes, and scripts across multiple projects.
Docker is used to containerize the applications, ensuring consistent environments for development and production. The repository includes Docker Compose files for both development and production environments.
Users are free to configure the monorepo to suit their development needs. Environment variables can be adjusted by modifying the .env files for each application. The Makefile provides convenient targets for common tasks such as building, starting, and stopping containers.
To get started with Ticketeer, follow these setup instructions for each component of the monorepo.
- Docker
- Docker Compose
- Node.js (>=18)
- Yarn
-
Clone the Repository:
git clone https://github.com/your-repo/ticketeer-monorepo.git cd ticketeer-monorepo
-
Install Dependencies:
yarn install
-
Configure Environment Variables: Copy the example environment files and adjust them if necessary.
cp .env.example .env cp apps/api/.env.example apps/api/.env cp apps/dashboard/.env.example apps/dashboard/.env
-
Build and Start the Containers: For development:
make dev
For production:
make prod
-
Stop and Remove Containers:
make down
make prod
: Build and start the production containers.make dev
: Build and start the development containers.make down
: Stop and remove all containers.
-
Run Tests:
yarn test
-
Lint Code:
yarn lint
-
Format Code:
yarn format
This should be enough to get the application up and running. For more detailed configuration, refer to the individual app documentation.