Mini Support Desk is a simple full‑stack example showing how to build a lightweight ticketing system with a Vue 3 frontend and a Django REST backend. It lets users create support tickets, assign priorities and statuses, and add comments. The project is containerised with Docker, so you can run both services with a single command.
support-desk-api/– Django API implementing ticket and comment models and REST endpoints.support-desk-web/– Vue 3/Vite app using TypeScript and Pinia to consume the API.docker-compose.yml– Orchestrates the backend and frontend containers.
-
Clone the repository (this project lives in
mini-support-deskin the shared folder). -
Build and run with Docker Compose. From the root of the project run:
docker-compose up --build
This command builds the backend and frontend images, applies database migrations, and starts both servers. The backend will be available on port
8000and the frontend on port5173. When running in Docker the frontend proxies API requests to the backend automatically. -
Visit the application. Open your browser to
http://localhost:5173to view the Vue app. The API lives underhttp://localhost:8000/api/.
- The Vue app is scaffolded manually using Vite and uses the Composition API with TypeScript. The store lives in
src/stores, routes insrc/router, and views insrc/views. - The Django API uses the Django REST Framework (DRF). Models are in
tickets/models.py, serializers intickets/serializers.pyand viewsets intickets/views.py. The API is routed under/api/. - Hot reloading works inside Docker because the project folder is mounted into the containers. When you change code in either service, the server automatically reloads.
This project is provided as a sample for learning purposes. Feel free to adapt it for your own projects.