API for booking tickets to planetarium shows written in DRF.
- Manage astronomy shows and their details.
- Create planetarium dome instances with different amount of seats in a row.
- Schedule and manage show sessions in different planetarium domes.
- View list of next show sessions for each astronomy show.
- View number of free seats on the show session list.
- Get taken seats on the show session instance page.
- Filter astronomy shows and show sessions.
- Allow users to make reservations for show sessions.
- User authentication and authorization.
- Throttle API requests to prevent abuse.
- Add images for astronomy shows.
- Django
- Django REST framework
- Docker
- JWT Authentication
- Swagger/OpenAPI Documentation
- Python (version 3.10 or higher)
- Git (optional, for cloning the repository)
- Docker
To set up the Planetarium API project using Docker, follow these steps:
-
Install Docker: If you don't have Docker installed, you can download and install it from the official Docker website: https://docs.docker.com/get-docker/
-
Clone the repository:
git clone https://github.com/vkrasnovyd/planetarium-api.git cd planetarium-api
-
Edit the
.env
using the template.env.sample
. -
Build the Docker Image:
docker build -t planetarium-api .
-
Build the Docker containers using Docker Compose:
docker-compose build
-
Create a superuser for accessing the Django admin panel and API:
docker exec -it <container_name> bash python manage.py createsuperuser
-
Start the Docker containers:
docker-compose up
The API documentation can be accessed at http://localhost:8000/api/doc/swagger/ which provides an interactive interface to explore and test the available API endpoints.
I welcome contributions to improve the Planetarium API Service. Feel free to submit bug reports, feature requests, or pull requests to v.krasnovyd@gmail.com