Skip to content

Latest commit

 

History

History
67 lines (48 loc) · 2.8 KB

README.md

File metadata and controls

67 lines (48 loc) · 2.8 KB

🎟️ Ticket Management System API

A modern, API-first Laravel project that enables seamless ticket management — designed in the spirit of a Kanban board but powered by robust, scalable backend architecture.

Laravel Docker

🌐 Key Highlights

  • Versioned APIs — Built with future-proofing in mind.
  • 🎯 Dynamic Filtering — Query API endpoints using a flexible, intuitive filter system.
  • 🔐 Policy-Based Authorization — Robust access control using Laravel Policies.
  • 🛡️ Token Abilities & Permissions — Fine-grained permission control at the token level.
  • 📄 JSON:API Specification — Fully adheres to JSON:API standard.
  • 🐳 Laravel Sail (Docker) — Get started in minutes with a full Docker setup.
  • 🧪 PestPHP v3+ for Testing — Elegant and expressive test framework for writing clean, readable test cases.

🚀 Quick Start

Requirements

  • Docker
  • Laravel Sail (included)

Setup Instructions

git clone https://github.com/lalithhakari/ticket-api.git
cd ticket-api
cp .env.example .env
sail up -d
sail artisan migrate:fresh --seed
sail artisan queue:work -v

This will spin up your Docker containers and prepare the database with sample data. It also spins up the queue worker to listen for any jobs to process (it processes the WelcomeEmail queue job after registration API is hit).

you can view the received email in the default mailer Mailpit's inbox via http://localhost:8025

Test Suite Instructions

sail pest
sail pest --coverage

and other standard commands of pest

🧠 Why This Project Stands Out

This project is designed to reflect real-world API architecture using Laravel 12: • Demonstrates a clean and extensible backend for ticket-based systems. • Ideal for learning advanced Laravel concepts like token management, authorization, and filtering. • Great foundation for building scalable task or support ticket systems. • Easy-to-read, well-structured codebase for developers to build on top of.

🧱 Tech Stack • Backend: Laravel 12 • API Auth: Laravel Sanctum (Token Abilities) • Database: MySQL • Dev Environment: Laravel Sail (Docker) • Standards: JSON:API, RESTful Routing • Testing: PestPHP v3+

📣 Contributing

Contributions, issues, and feature requests are welcome! 1. Fork the repository 2. Create your feature branch (git checkout -b feature/new-feature) 3. Commit your changes (git commit -am 'Add new feature') 4. Push to the branch (git push origin feature/new-feature) 5. Create a new Pull Request