GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - ATNoosh/task-api

BranchesTags
Open more actions menu

Latest commit

 

History

13 Commits
13 Commits

Folders and files

NameName
Last commit message
Last commit date
app
app
 
 
bootstrap
bootstrap
 
 
config
config
 
 
database
database
 
 
docs/postman
docs/postman
 
 
public
public
 
 
resources
resources
 
 
routes
routes
 
 
storage
storage
 
 
tests
tests
 
 
.editorconfig
.editorconfig
 
 
.env.example
.env.example
 
 
.gitattributes
.gitattributes
 
 
.gitignore
.gitignore
 
 
README.md
README.md
 
 
artisan
artisan
 
 
composer.json
composer.json
 
 
composer.lock
composer.lock
 
 
docker-compose.yml
docker-compose.yml
 
 
package-lock.json
package-lock.json
 
 
package.json
package.json
 
 
phpunit.xml
phpunit.xml
 
 
vite.config.js
vite.config.js
 
 

Repository files navigation

Senior PHP Backend Developer – Coding Assessment

Thank you for taking the time to complete this assessment.
The goal is to demonstrate how you approach architecture, testing, and backend engineering best practices.


📖 Project: Collaborative Task Management API

Objective

Build a REST API for managing projects, tasks, comments, and notifications.
We value clean architecture, thoughtful design, and code quality over speed or feature quantity.


✅ Requirements

Core Features

  • Authentication: User registration & login (JWT or Laravel Sanctum).
  • Projects: CRUD operations. Each project belongs to a user.
  • Tasks:
    • CRUD operations.
    • Fields: title, description, status (todo/in-progress/done), due_date.
    • Filtering: by status, due date, full-text search.
    • Pagination for listing.
  • Comments: CRUD operations. Each comment belongs to a task.
  • Notifications:
    • Triggered when a task is assigned or updated.
    • Delivered asynchronously (e.g., queue).
    • Endpoint for fetching unseen notifications.

Non-Functional

  • Use a layered architecture (controllers, services, repositories, domain models).
  • Apply at least two meaningful design patterns (e.g., Repository, Strategy, Observer).
  • Database migrations must be included.
  • Cache task listings (e.g., Redis).
  • Add rate limiting for sensitive endpoints.
  • Standardized error handling and responses.

Testing

  • Unit tests for core services and repositories.
  • Integration tests for API endpoints.
  • Minimum 70% test coverage.

DevOps

  • Dockerfile + docker-compose.yml for local setup.
  • CI pipeline runs automatically (tests, static analysis, linting, security).
  • Compatible with PHP 8.2+.

Documentation

  • Update this README.md to include:
    • Setup instructions.
    • Example API requests (curl/Postman).
    • Explanation of your architectural decisions and trade-offs.
    • Which design patterns you applied, and why.

đŸŽ¯ Acceptance Criteria

Your submission will be evaluated on:

  • Architecture & Patterns: Separation of concerns, justified design patterns.
  • Code Quality & Standards: PSR-12 compliance, maintainability.
  • Feature Completeness: Requirements implemented.
  • Testing: Coverage, meaningful cases, edge-case handling.
  • Documentation: Clear and professional.
  • DevOps: CI/CD awareness, Docker setup.

📝 Commit Guidelines

We value not only the final code but also how you structure your work.
Please use meaningful, structured commit messages throughout your development.

  • Follow Conventional Commits style when possible:

    • feat: – for new features
    • fix: – for bug fixes
    • chore: – for setup, configuration, or maintenance
    • test: – for adding or improving tests
    • docs: – for documentation changes
  • Examples:

    • chore: initial commit (Laravel project setup)
    • feat: add task CRUD endpoints
    • fix: correct due date validation logic

Your commit history will be reviewed as part of the assessment to understand how you approach iteration, problem-solving, and communication through code.

đŸ“Ļ Submission Instructions

  1. Implement your solution inside this repo.
  2. Push to a private GitHub repository.
  3. Invite the following reviewers with Read role: gh-ewmateam.
  4. Please complete within 7 days of receiving the assignment.
  5. If you need more time, let us know.

â„šī¸ Notes

  1. The project is designed to take 3–5 hours. We do not expect a production-ready system.
  2. Quality matters more than quantity — partial solutions are acceptable if well-documented.
  3. Document anything you would do differently with more time.

Good luck, and thank you again for your effort!

About

No description, website, or topics provided.

Resources

Readme
Activity

Stars

0 stars

Watchers

0 watching

Forks

0 forks
Report repository

Releases

Packages

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.