{"id":48523515,"url":"https://github.com/mustafalazzawe/devil-fruit-database","last_synced_at":"2026-04-07T21:33:17.818Z","repository":{"id":269058315,"uuid":"836038224","full_name":"mustafalazzawe/devil-fruit-database","owner":"mustafalazzawe","description":"A comprehensive database application for tracking Devil Fruits from the One Piece universe. This project features a modern web interface for browsing and searching Devil Fruits, their users, and abilities.","archived":false,"fork":false,"pushed_at":"2026-02-18T22:12:53.000Z","size":1512,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-02-19T04:09:44.695Z","etag":null,"topics":["bun","devil-fruits","docker","fastapi","google-cloud-platform","one-piece","python","react","react-query","sqlite","styled-components","typescript","vite"],"latest_commit_sha":null,"homepage":"https://mustafalazzawe.github.io/devil-fruit-database/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mustafalazzawe.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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":"2024-07-31T03:26:35.000Z","updated_at":"2026-02-18T22:10:52.000Z","dependencies_parsed_at":null,"dependency_job_id":"fdf38a8d-878e-48db-9455-103d182a9594","html_url":"https://github.com/mustafalazzawe/devil-fruit-database","commit_stats":null,"previous_names":["mustafalazzawe/devil-fruit-database"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mustafalazzawe/devil-fruit-database","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mustafalazzawe%2Fdevil-fruit-database","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mustafalazzawe%2Fdevil-fruit-database/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mustafalazzawe%2Fdevil-fruit-database/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mustafalazzawe%2Fdevil-fruit-database/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mustafalazzawe","download_url":"https://codeload.github.com/mustafalazzawe/devil-fruit-database/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mustafalazzawe%2Fdevil-fruit-database/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31530642,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T16:28:08.000Z","status":"ssl_error","status_checked_at":"2026-04-07T16:28:06.951Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["bun","devil-fruits","docker","fastapi","google-cloud-platform","one-piece","python","react","react-query","sqlite","styled-components","typescript","vite"],"created_at":"2026-04-07T21:33:17.562Z","updated_at":"2026-04-07T21:33:17.801Z","avatar_url":"https://github.com/mustafalazzawe.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# One Piece: Devil Fruit Database\n\nA comprehensive database application for tracking Devil Fruits from the One Piece universe. This project features a modern web interface for browsing and searching Devil Fruits, their users, and abilities.\n\n## Tech Stack\n\n### Backend\n- **Framework**: FastAPI\n- **Database**: SQLite with SQLModel ORM\n- **Cloud Services**: Google Cloud Platform\n  - Google Cloud Storage \n  - Cloud Run \n  - Secret Manager \n- **Other**: Docker\n\n### Frontend\n- **Framework**: React.js with TypeScript\n- **Build Tool**: Vite\n- **Package Manager**: Bun\n- **Styling**: styled-components\n- **Other**: React Query\n\n## Local Development\n\n### Prerequisites\n- Docker and Docker Compose\n- Bun (or Node.js)\n\n### Backend Setup\n\n1. Navigate to the backend directory:\n```bash\ncd backend\n```\n\n2. Create your environment file:\n```bash\ncp .env.example .env\n```\n\n3. Start the backend service with database population:\n```bash\n# Build and start the service with initial data\ndocker compose -f docker-compose.jobs.yml --profile populate up --build\n```\n\nThe backend API will be available at: http://localhost:8000\n\n### Frontend Setup\n\n1. Navigate to the frontend directory:\n```bash\ncd frontend\n```\n\n2. Create your environment file:\n```bash\ncp .env.example .env\n```\n\n2. Install dependencies:\n```bash\n# Using Bun (recommended)\nbun install\n\n# Or using npm\nnpm install\n```\n\n3. Start the development server:\n```bash\n# Using Bun\nbun run dev\n\n# Or using npm\nnpm run dev\n```\n\nThe frontend will be available at: http://localhost:5173/devil-fruit-database/\n\n## Features\n- Comprehensive Devil Fruit database\n- Search and filter functionality\n- Spoiler protection system\n- Responsive design\n- RESTful API\n\n## Project Structure\n\n```\ndevil-fruit-app-v1/\n├── backend/              # FastAPI backend\n│   ├── app/              # Application code\n│   ├── Dockerfile        # Container configuration\n│   └── docker-compose.*  # Environment configurations\n├── frontend/             # React frontend\n│   ├── src/              # Source code\n│   └── public/           # Static assets\n└── README.md             # Project documentation\n```\n\n## API Documentation\nWhen running locally, API documentation is available at:\n- Swagger UI: http://localhost:8000/docs\n- ReDoc: http://localhost:8000/redoc\n\n## Environment Configuration\n\n### Backend (.env)\nRequired environment variables for local development:\n```properties\n# Info \nPROJECT_NAME=\"Devil Fruit Database\"\n\n# Domain\nDOMAIN=localhost\n\n# Environment: dev, staging, prod\nENVIRONMENT=dev\n\n# Backend\nIS_ALLOWED_CREDENTIALS=True\n\n# Database\nSQLITE_DB_PATH=data/db/devil_fruits.db\n\n# Optional: Google Cloud Configuration (not needed for local development)\nUSE_GCP=false\n```\n\n### Frontend (.env)\nRequired environment variables for local development:\n```properties\n# Environment: dev, staging, prod\nVITE_ENVIRONMENT=dev\n\n# API URL\nVITE_API_URL=http://localhost:8000\n```\n\n### Production Setup\nThe production environment is configured to use Google Cloud Platform services. The frontend will automatically connect to the Cloud Run instance when built with production configuration.\n\nProduction deployment is handled through GitHub Actions, which:\n- Builds and deploys the frontend to GitHub Pages\n- Builds and deploys the backend to Cloud Run\n- Manages environment-specific configurations\n\n## License\nThis project is licensed under the [Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License](https://creativecommons.org/licenses/by-nc-nd/4.0/) - see the [LICENSE.md](LICENSE.md) file for details.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmustafalazzawe%2Fdevil-fruit-database","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmustafalazzawe%2Fdevil-fruit-database","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmustafalazzawe%2Fdevil-fruit-database/lists"}