{"id":29960342,"url":"https://github.com/kinchan-code/discussion-platform-api","last_synced_at":"2026-04-18T19:33:23.846Z","repository":{"id":307724416,"uuid":"1029858480","full_name":"Kinchan-code/discussion-platform-api","owner":"Kinchan-code","description":null,"archived":false,"fork":false,"pushed_at":"2025-12-10T21:35:15.000Z","size":249,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-11T08:51:15.804Z","etag":null,"topics":["laravel12","mysql","typesense"],"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/Kinchan-code.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}},"created_at":"2025-07-31T17:27:52.000Z","updated_at":"2025-12-10T21:35:20.000Z","dependencies_parsed_at":"2025-08-01T21:36:23.140Z","dependency_job_id":"2f44c9b5-bced-4ef2-bf76-345df654f81f","html_url":"https://github.com/Kinchan-code/discussion-platform-api","commit_stats":null,"previous_names":["kinchan-code/discussion-platform-api"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Kinchan-code/discussion-platform-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kinchan-code%2Fdiscussion-platform-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kinchan-code%2Fdiscussion-platform-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kinchan-code%2Fdiscussion-platform-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kinchan-code%2Fdiscussion-platform-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Kinchan-code","download_url":"https://codeload.github.com/Kinchan-code/discussion-platform-api/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kinchan-code%2Fdiscussion-platform-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31982742,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T17:30:12.329Z","status":"ssl_error","status_checked_at":"2026-04-18T17:29:59.069Z","response_time":103,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["laravel12","mysql","typesense"],"created_at":"2025-08-03T22:40:22.387Z","updated_at":"2026-04-18T19:33:23.829Z","avatar_url":"https://github.com/Kinchan-code.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Community-Powered Protocol \u0026 Discussion Platform API\n\nA robust Laravel REST API for a community-driven platform where users can share wellness protocols, create discussion threads, and engage through comments, reviews, and voting.\n\n## 🚀 Features\n\n-   **Protocols**: Structured wellness instructions with tags, ratings, and author attribution\n-   **Threads \u0026 Comments**: Discussion topics with multi-level nested replies\n-   **Reviews \u0026 Voting**: Star ratings, feedback, and upvote/downvote system (one vote per user)\n-   **User Profiles**: Statistics and activity tracking\n-   **Search**: Full-text, faceted search with Typesense Cloud \u0026 Laravel Scout\n-   **Authentication**: Laravel Sanctum token-based authentication\n-   **Clean Architecture**: Service layer, DTOs, and standardized API responses\n\n## 🏗️ Tech Stack\n\n-   **Framework**: Laravel 12.x (PHP 8.2+)\n-   **Database**: MySQL 8.0+\n-   **Search**: Typesense Cloud via Laravel Scout\n-   **Auth**: Laravel Sanctum\n-   **Testing**: PHPUnit\n\n## ⚡ Quick Start\n\n1. **Clone \u0026 Install**\n\n    ```bash\n    git clone \u003crepository-url\u003e\n    cd discussion-platform-api\n    composer install\n    npm install\n    ```\n\n2. **Environment Setup**\n\n    ```bash\n    cp .env.example .env\n    php artisan key:generate\n    # Edit .env for DB and Typesense credentials\n    ```\n\n3. **Database \u0026 Seed**\n\n    ```bash\n    php artisan migrate\n    php artisan db:seed\n    ```\n\n4. **(Optional) Search Index**\n\n    ```bash\n    php artisan scout:import \"App\\\\Models\\\\Protocol\"\n    php artisan scout:import \"App\\\\Models\\\\Thread\"\n    ```\n\n5. **Run Server**\n    ```bash\n    php artisan serve\n    # API at http://localhost:8000\n    ```\n\n## 📚 API Overview\n\n**Authentication**\n\n-   `POST /api/register` — Register new user\n-   `POST /api/login` — Login user\n-   `POST /api/logout` — Logout user (auth required)\n-   `GET /api/me` — Get current user (auth required)\n\n**Profile**\n\n-   `GET /api/profile` — Get current user profile (auth required)\n-   `PUT /api/profile` — Update profile (auth required)\n-   `GET /api/profile/statistics` — User activity stats (auth required)\n-   `GET /api/profile/replies` — User’s replies (auth required)\n-   `GET /api/profile/comments` — User’s comments (auth required)\n-   `GET /api/profile/reviews` — User’s reviews (auth required)\n\n**Protocols**\n\n-   `GET /api/protocols` — List protocols (filter/sort supported)\n-   `GET /api/protocols/featured` — Featured protocols\n-   `GET /api/protocols/filters` — Protocol filters\n-   `GET /api/protocols/{id}` — Get protocol\n-   `GET /api/protocols/{id}/stats` — Protocol stats\n-   `POST /api/protocols` — Create protocol (auth required)\n-   `PUT /api/protocols/{id}` — Update protocol (auth required)\n-   `DELETE /api/protocols/{id}` — Delete protocol (auth required)\n\n**Threads**\n\n-   `GET /api/threads` — List threads (filter/sort supported)\n-   `GET /api/threads/trending` — Trending threads\n-   `GET /api/threads/{id}` — Get thread\n-   `GET /api/threads/{id}/stats` — Thread stats\n-   `GET /api/protocols/{protocol}/threads` — Threads by protocol\n-   `POST /api/threads` — Create thread (auth required)\n-   `PUT /api/threads/{id}` — Update thread (auth required)\n-   `DELETE /api/threads/{id}` — Delete thread (auth required)\n\n**Comments**\n\n-   `GET /api/threads/{thread}/comments` — Get thread comments\n-   `GET /api/comments/{comment}/replies` — Get comment replies\n-   `GET /api/replies/{reply}/nested` — Get nested replies\n-   `POST /api/threads/{thread}/comments` — Create comment (auth required)\n-   `POST /api/comments/{comment}/reply` — Reply to comment (auth required)\n-   `POST /api/replies/{reply}/reply` — Reply to reply (auth required)\n-   `PUT /api/comments/{comment}` — Update comment (auth required)\n-   `DELETE /api/comments/{comment}` — Delete comment (auth required)\n\n**Reviews**\n\n-   `GET /api/protocols/{protocol}/reviews` — Get protocol reviews\n-   `POST /api/protocols/{protocol}/reviews` — Create review (auth required)\n-   `DELETE /api/reviews/{id}` — Delete review (auth required)\n\n**Voting**\n\n-   `POST /api/threads/{thread}/vote` — Vote on thread (auth required)\n-   `POST /api/comments/{comment}/vote` — Vote on comment (auth required)\n-   `POST /api/reviews/{review}/vote` — Vote on review (auth required)\n\n**Tags \u0026 Analytics**\n\n-   `GET /api/tags/popular` — Popular tags\n-   `GET /api/stats/dashboard` — Platform statistics\n\n---\n\nAll endpoints return standardized JSON. Most write actions require authentication (Bearer token).\n\n## 🧪 Testing\n\n```bash\nphp artisan test\n```\n\n**For questions or feedback, feel free to reach out.**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkinchan-code%2Fdiscussion-platform-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkinchan-code%2Fdiscussion-platform-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkinchan-code%2Fdiscussion-platform-api/lists"}