Tickify is a support ticket management API built in Rust using Axum. It allows to efficiently manage support tickets, users, and authentication.
- CRUD Operations for
TicketsandUsers - JWT Authentication for secure user login
- Role-based Access Control (RBAC) for managing permissions
- Logging to
consoleandfilesfor monitoring and debugging - PostgreSQL Database with
sqlx - Error Handling using
thiserrorfor structured and clear error messages - MVC Architecture for clean separation of concerns
- OpenAPI (Swagger) Documentation auto-generated with
utoipa - Environment Variable Configurations for easy environment management
- Data Validation using
validatorfor safe input - Secure Password Encryption with
argon2 - CORS Support to manage cross-origin requests
- Migrations with
sqlxfor database versioning - Utility scripts with
just - Ticket export to
PDFandCSV
- Rust (latest stable version)
- Docker and Docker Compose
- SQLX-cli for migrations
- Cargo-watch for auto-run
- Just for scripts
git clone https://github.com/allansomensi/tickify-api.git
cd tickifyFor the scripts:
cargo install justFor the migrations:
cargo install sqlx-cliFor the auto-run:
cargo install cargo-watchjust services-upjust serveFor once:
just testFor watching mode:
just test-watchAPI endpoints and usage details are documented using Swagger UI and OpenAPI with Utoipa.
The full documentation is available in the openapi.json file, which can be accessed and imported as needed. Run the application and navigate to /swagger-ui to view the interactive Swagger documentation.