LearnFlow API is a Laravel-based backend project for managing a candidate hiring and learning workflow.
The system covers the full flow from vacancy creation and candidate processing to interviews, test assignments, courses, progress tracking, comments, and activity logs.
This project demonstrates:
- REST API design
- role-based access control
- business logic for candidate status transitions
- Laravel testing
- Docker-based local setup
- database migrations and seeders
- OpenAPI documentation
- authentication with token-based access
- roles: admin, recruiter, mentor
- vacancy management
- candidate management
- candidate status transitions
- interview scheduling and result handling
- test assignment flow
- course assignment and progress tracking
- comments and activity logs
- OpenAPI documentation
A candidate can move through stages such as:
- new
- screening
- learning
- test task
- ready for interview
- interview
- hired
- rejected
The backend validates allowed status transitions and rejects invalid business actions.
- PHP 8.3
- Laravel 11
- PostgreSQL
- Docker / Docker Compose
- PHPUnit
git clone https://github.com/PaulSavanna/learnflow-api.git
cd learnflow-apicp .env.example .envdocker compose up --build -ddocker compose exec app composer installdocker compose exec app php artisan key:generatedocker compose exec app php artisan migrate --seeddocker compose exec app php artisan testThe project includes OpenAPI documentation for the main endpoints.
- manage vacancies and candidates
- track candidate progress through the pipeline
- assign courses and test tasks
- schedule interviews
- store comments and activity history
- enforce valid business transitions
This project is designed as a backend portfolio piece that shows practical work with:
- Laravel architecture
- business rules
- relational database design
- API development
- testable backend code
- containerized local setup
This repository is under active polishing and improvement.