This project is an example of implementing key features in AdonisJS 6 for REST API with Access Tokens as its auth guard.
- User Authentication (Access Token): adding features for login, logout, manage profile using token, and refresh token
 - User Authorization (Bouncer): adding user abilities and post policies
 - Database (Lucid): implementing migration, seeder, and relationship model
 - Validation (VineJS): adding custom rules for exists and unique
 - Middleware: implementing auth and bouncer middleware
 - Exception Handling: adding handling errors for route not found, unauthorized access, unauthorized action (Bouncer), validation error (VineJS), custom database error (Lucid)
 - CRUD Examples: users, user roles, user statuses and posts
 - Others: add global helper, add global constants, and add uploaded file route
 
- Node.js >= 20.6