{"id":27050593,"url":"https://github.com/florianpfleiderer/coffee-app","last_synced_at":"2026-04-10T07:51:34.642Z","repository":{"id":206853700,"uuid":"717839146","full_name":"florianpfleiderer/coffee-app","owner":"florianpfleiderer","description":"This was a semester project for the subject software development. ","archived":false,"fork":false,"pushed_at":"2025-03-03T11:19:35.000Z","size":1032,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-03T11:22:40.766Z","etag":null,"topics":["docker","flask","python","react","sqlite"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/florianpfleiderer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2023-11-12T18:59:06.000Z","updated_at":"2025-03-03T11:19:38.000Z","dependencies_parsed_at":"2023-11-12T20:25:02.092Z","dependency_job_id":"8c68321d-effe-44e0-856e-785c0d9867f3","html_url":"https://github.com/florianpfleiderer/coffee-app","commit_stats":null,"previous_names":["florianpfleiderer/coffee-app"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/florianpfleiderer%2Fcoffee-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/florianpfleiderer%2Fcoffee-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/florianpfleiderer%2Fcoffee-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/florianpfleiderer%2Fcoffee-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/florianpfleiderer","download_url":"https://codeload.github.com/florianpfleiderer/coffee-app/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247305936,"owners_count":20917209,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["docker","flask","python","react","sqlite"],"created_at":"2025-04-05T08:17:30.902Z","updated_at":"2026-04-10T07:51:29.601Z","avatar_url":"https://github.com/florianpfleiderer.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Coffee App\n\nA comprehensive application for coffee enthusiasts to track their beans, recipes, and brewing methods.\n\n## Table of Contents\n- [Project Overview](#project-overview)\n- [Project Structure](#project-structure)\n- [Local Development](#local-development)\n- [Docker Deployment](#docker-deployment)\n- [Production Deployment](#production-deployment)\n\n## Project Overview\n\nThis application allows coffee enthusiasts to:\n- Track their coffee inventory\n- Record brewing recipes\n- Manage grinder settings\n- Explore coffee news and varieties\n- View coffee-growing regions on a map\n\n## Project Structure\n\nThe project is organized as follows:\n\n- `api/`: Contains the Flask backend API code\n- `frontend/`: Contains the React frontend code\n- `functions/`: Contains Cloudflare Worker functions\n- `docker-compose.yml`: Configures both the frontend and API services\n- `deploy.sh`: Script for deploying to Cloudflare\n\n## Local Development\n\n### Prerequisites\n\n- Node.js and npm/yarn\n- Python 3.7+ and pip\n- Docker and Docker Compose (for containerized deployment)\n\n### Setting Up the Frontend\n\n```bash\ncd frontend\nyarn install\nyarn start\n```\n\nThe frontend will be available at http://localhost:3000.\n\n### Setting Up the Backend\n\n```bash\ncd api\npython3 -m venv venv\nsource venv/bin/activate  # On Windows: venv\\Scripts\\activate\npip install -r requirements.txt\nflask run\n```\n\nThe API will be available at http://localhost:5000.\n\n## Docker Deployment\n\n### Local Deployment with Docker Compose\n\nDocker Compose allows you to run both the frontend and backend in containers, which ensures consistency across development environments.\n\n1. Make sure Docker and Docker Compose are installed on your system.\n\n2. From the project root directory, run:\n\n```bash\ndocker-compose up\n```\n\nThis command will:\n- Build the frontend and backend Docker images if they don't exist\n- Create and start containers for both services\n- Configure networking between them\n- Map ports to your host machine\n\n3. Access the application:\n   - Frontend: http://localhost:3000\n   - Backend API: http://localhost:8000\n\n4. To stop the containers, press `Ctrl+C` in the terminal or run:\n\n```bash\ndocker-compose down\n```\n\n### Docker Compose Configuration\n\nThe `docker-compose.yml` file configures:\n- API service with Flask running on port 8000\n- Frontend service with React running on port 3000\n- Health checks to ensure the API is running before starting the frontend\n- A bridged network for communication between services\n- Volume mapping for live code updates during development\n\n## Production Deployment\n\n### Deploying to Cloudflare with deploy.sh\n\nThe project includes a deployment script that automates deployment to Cloudflare Pages and Workers.\n\n1. Prerequisites:\n   - Cloudflare account\n   - Wrangler CLI installed and authenticated\n   - Node.js environment (Conda or other)\n\n2. Run the deployment script:\n\n```bash\nchmod +x deploy.sh  # Make the script executable (one-time setup)\n./deploy.sh\n```\n\nThe script will:\n1. Build the React frontend\n2. Deploy the frontend to Cloudflare Pages\n3. Set up and deploy a Cloudflare Worker for the API\n4. Configure routing and CORS\n\nOnce deployed, your application will be available at your Cloudflare Pages URL, with the API accessible through Cloudflare Workers.\n\n### Manual Deployment\n\nIf you prefer to deploy manually or to a different platform:\n\n1. Build the frontend:\n```bash\ncd frontend\nnpm run build\n```\n\n2. Deploy the `build` directory to your hosting platform.\n\n3. Set up the backend API on a server of your choice, ensuring it's accessible to your frontend.\n\n4. Update the API URL in the frontend configuration.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflorianpfleiderer%2Fcoffee-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fflorianpfleiderer%2Fcoffee-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflorianpfleiderer%2Fcoffee-app/lists"}