{"id":31642265,"url":"https://github.com/bribinha/barberguide-api","last_synced_at":"2026-04-19T04:38:10.003Z","repository":{"id":318345618,"uuid":"1068596028","full_name":"bribinha/barberguide-api","owner":"bribinha","description":"Backend robusto para uma SPA de agendamentos. API RESTful com Laravel 10, lógica de agendamento avançada e autenticação via Sanctum. 100% testado com PHPUnit.","archived":false,"fork":false,"pushed_at":"2025-10-06T15:50:35.000Z","size":87,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-06T17:43:06.976Z","etag":null,"topics":["cors","laravel","phpunit","restful-api","sanctum","spa"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bribinha.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-02T16:08:27.000Z","updated_at":"2025-10-06T15:53:47.000Z","dependencies_parsed_at":"2025-10-06T17:43:09.344Z","dependency_job_id":null,"html_url":"https://github.com/bribinha/barberguide-api","commit_stats":null,"previous_names":["bribinha/barberguide-api"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/bribinha/barberguide-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bribinha%2Fbarberguide-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bribinha%2Fbarberguide-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bribinha%2Fbarberguide-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bribinha%2Fbarberguide-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bribinha","download_url":"https://codeload.github.com/bribinha/barberguide-api/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bribinha%2Fbarberguide-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31995167,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T20:23:30.271Z","status":"online","status_checked_at":"2026-04-19T02:00:07.110Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cors","laravel","phpunit","restful-api","sanctum","spa"],"created_at":"2025-10-07T03:57:44.706Z","updated_at":"2026-04-19T04:38:09.981Z","avatar_url":"https://github.com/bribinha.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BarberGuide API (Laravel)\n\nAPI RESTful robusta desenvolvida com Laravel 10 para servir como backend de uma aplicação de agendamentos de barbearias\ne cabeleleiros. Este projeto demonstra uma arquitetura de API limpa, lógica de negócio complexa e uma base sólida para\nfuncionalidades avançadas como autenticação e notificações.\n\n![PHP](https://img.shields.io/badge/PHP-8.1%2B-blue?logo=php)\n![Laravel](https://img.shields.io/badge/Laravel-10.x-orange?logo=laravel)\n![PostgreSQL](https://img.shields.io/badge/PostgreSQL-15-blue?logo=postgresql)\n![PHPUnit](https://img.shields.io/badge/Testes-PHPUnit-green?logo=phpunit)\n\n---\n\n### 📋 Tabela de Conteúdos\n\n1. [Sobre o Projeto](#-sobre-o-projeto)\n2. [Principais Habilidades Demonstradas](#-principais-habilidades-demonstradas)\n3. [Tech Stack](#-tech-stack)\n4. [Como Executar Localmente](#-como-executar-localmente)\n5. [Rodando os Testes](#-rodando-os-testes)\n6. [Endpoints da API](#-endpoints-da-api)\n7. [Próximos Passos](#-próximos-passos)\n\n---\n\n### ✨ Sobre o Projeto\n\nEste backend foi construído para gerenciar toda a lógica de um sistema de agendamentos, fornecendo endpoints seguros e\neficientes para uma interface de frontend (SPA). O foco foi em escrever um código limpo, testável e escalável.\n\n### 🚀 Principais Habilidades Demonstradas\n\n* **Arquitetura de API RESTful:** Design de endpoints seguindo as melhores práticas, utilizando Resources e Form\n  Requests do Laravel.\n* **Lógica de Negócio Complexa:** Implementação do algoritmo de cálculo de horários disponíveis, considerando o\n  expediente do profissional e os agendamentos já existentes.\n* **Autenticação para SPAs:** Configuração completa do **Laravel Sanctum** e **CORS** para garantir a comunicação segura\n  com um frontend desacoplado.\n* **Testes de Funcionalidade (TDD):** Cobertura de testes para os endpoints críticos da aplicação usando **PHPUnit**,\n  garantindo a confiabilidade e facilitando a manutenção.\n* **Manipulação de Banco de Dados:** Uso do Eloquent ORM com relacionamentos, migrations e seeders para um gerenciamento\n  de dados eficiente e consistente com PostgreSQL.\n\n### 🛠️ Tech Stack\n\n* **PHP 8.1+**\n* **Laravel 10**\n* **PostgreSQL 15**\n* **Laravel Sanctum** (Autenticação)\n* **PHPUnit** (Testes)\n\n### ⚙️ Como Executar Localmente\n\n**Pré-requisitos:**\n\n* PHP \u003e= 8.1\n* Composer\n* PostgreSQL\n\n**Passos:**\n\n1. Clone o repositório: `git clone https://github.com/bribinha/barberguide-api`\n2. Navegue até a pasta: `cd barberguide-api`\n3. Instale as dependências: `composer install`\n4. Copie o arquivo de ambiente: `cp .env.example .env`\n5. Gere a chave da aplicação: `php artisan key:generate`\n6. Configure suas credenciais do PostgreSQL no arquivo `.env`.\n7. Execute as migrações e popule o banco: `php artisan migrate --seed`\n8. Inicie o servidor de desenvolvimento: `php artisan serve`\n    * A API estará disponível em `http://127.0.0.1:8000/api`\n\n### 🧪 Rodando os Testes\n\nPara executar a suíte de testes de funcionalidade, rode:\n\n```bash\nphp artisan test\n```\n### Endpoints da API\n\n| Método | Endpoint                                             | Descrição                                                  |\n| :----- | :--------------------------------------------------- | :--------------------------------------------------------- |\n| `GET`  | `/api/professionals`                                 | Retorna uma lista de todos os usuários profissionais.      |\n| `GET`  | `/api/professionals/{id}`                            | Retorna os detalhes de um profissional específico.         |\n| `GET`  | `/api/professionals/{id}/availability?date=Y-m-d`      | Retorna os horários disponíveis para um profissional em uma data. |\n| `POST` | `/api/appointments`                                  | Cria um novo agendamento.                                  |\n\n### 🔮 Próximos Passos\n\n* **[ ] Implementação das rotas de login, register e logout.**\n* **[ ] Sistema de Roles/Permissions (Cliente vs. Profissional).**\n* **[ ] Notificações por e-mail para agendamentos.**\n* **[ ] Implementação de cache com Redis para otimizar queries.**\n* **[ ] Arquitetura Multi-tenancy para escalar o sistema.**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbribinha%2Fbarberguide-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbribinha%2Fbarberguide-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbribinha%2Fbarberguide-api/lists"}