- PHP 8.2+
- Composer
- Laravel 11
- MySQL or other supported DB
- Clone / extract project
- Install dependencies: composer install
- Copy env:
cp .env.example .env
Configure DB settings in
.env - Generate key: php artisan key:generate
- Migrate & seed admin: php artisan migrate php artisan db:seed --class=AdminUserSeeder
- Install Sanctum (if not installed): composer require laravel/sanctum php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider" php artisan migrate
- Email: admin@gmail.com
- Password: admin123
Change this in production.
Public:
- POST
/api/register- body:
name,email,password,password_confirmation
- body:
- POST
/api/login- body:
email,password
- body:
Protected (must send Authorization: Bearer {token}):
- POST
/api/logout - POST
/api/notes— create note- body:
title(required),content
- body:
- GET
/api/notes— list notes- Admin: sees all notes
- User: sees only own notes
- optional query params:
search=keyword— search in title/contentper_page=10— return paginated response
- DELETE
/api/notes/{id}— delete (owner or admin) - PATCH
/api/notes/{id}— update (owner or admin)