{"id":26461383,"url":"https://github.com/andresmarinabad/familyprogressweb","last_synced_at":"2026-04-12T03:31:09.248Z","repository":{"id":246283292,"uuid":"812671176","full_name":"andresmarinabad/familyprogressweb","owner":"andresmarinabad","description":"Show your kids next birthday within a friendly interface","archived":false,"fork":false,"pushed_at":"2026-03-15T17:39:18.000Z","size":85185,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-16T05:04:10.887Z","etag":null,"topics":["firebase","github-actions","python","terraform"],"latest_commit_sha":null,"homepage":"https://familyprogressweb.vercel.app","language":"Python","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/andresmarinabad.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":"2024-06-09T14:56:08.000Z","updated_at":"2026-03-15T17:39:21.000Z","dependencies_parsed_at":"2024-06-27T01:47:16.087Z","dependency_job_id":"2929814e-b650-4565-8d7a-c328610e2a64","html_url":"https://github.com/andresmarinabad/familyprogressweb","commit_stats":null,"previous_names":["andresmarinabad/familyprogressweb"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/andresmarinabad/familyprogressweb","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andresmarinabad%2Ffamilyprogressweb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andresmarinabad%2Ffamilyprogressweb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andresmarinabad%2Ffamilyprogressweb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andresmarinabad%2Ffamilyprogressweb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/andresmarinabad","download_url":"https://codeload.github.com/andresmarinabad/familyprogressweb/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andresmarinabad%2Ffamilyprogressweb/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31703497,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-11T21:17:31.016Z","status":"online","status_checked_at":"2026-04-12T02:00:06.763Z","response_time":58,"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":["firebase","github-actions","python","terraform"],"created_at":"2025-03-19T04:55:05.263Z","updated_at":"2026-04-12T03:31:09.211Z","avatar_url":"https://github.com/andresmarinabad.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# FamilyProgressWeb\n\n[![Tests](https://github.com/andresmarinabad/familyprogressweb/actions/workflows/test_and_deploy.yml/badge.svg)](https://github.com/andresmarinabad/familyprogressweb/actions/workflows/test_and_deploy.yml)\n![Static Badge](https://img.shields.io/badge/coverage-88%25-green)\n![Static Badge](https://img.shields.io/badge/python-v3.12-blue)\n\n\n## Overview\n**FamilyProgressWeb** is a static HTML page that visually tracks the progress of family members, displaying their birthdays and pregnancy progress bars. The website is dynamically generated from a JSON file containing birth dates and pregnancy statuses.\n\n🔗 **Live Website:** [FamilyProgressWeb](https://family-expansion.web.app/)\n\n## Features\n- Displays family members' names, birthdays, and a progress bar showing time until the next birthday.\n- Supports pregnancy tracking by showing expected birth dates.\n- Automatically updates when new data is added.\n- Deploys automatically to Firebase Hosting.\n- Allows users to upload new photos by creating a GitHub issue.\n- Scheduled daily deployment to keep data updated.\n\n## File Structure\n```\nFamilyProgressWeb/\n│── data.json         # Contains family members' data\n│── templates/\n│   ├── index.html    # Jinja template for rendering HTML\n│── public/\n│   ├── css/          # Static CSS files\n│   ├── images/       # Uploaded images\n│── render.py         # Python script to generate index.html\n│── .github/\n│   ├── workflows/\n│   │   ├── deploy.yml       # GitHub Action to render and deploy\n│   │   ├── upload_image.yml # GitHub Action to process new photos\n```\n\n## Data Format\nThe `data.json` file should contain entries in the following format:\n```json\n[\n    {\n        \"nombre\": \"John Doe\",\n        \"fecha\": \"25/09/2017\"\n    },\n    {\n        \"nombre\": \"Jane Smith\",\n        \"fecha\": \"28/08/2018\"\n    },\n    {\n        \"nombre\": \"Baby Doe\",\n        \"fecha\": \"04/07/2025\",\n        \"embarazo\": true\n    }\n]\n```\n\n## Setup \u0026 Installation\n### Prerequisites\n- Python 3 installed\n- Firebase CLI installed (`npm install -g firebase-tools`)\n- A Firebase account and a configured project\n- GitHub repository with Actions enabled\n\n### Installation Steps\n1. Clone the repository:\n   ```sh\n   git clone https://github.com/yourusername/FamilyProgressWeb.git\n   cd FamilyProgressWeb\n   ```\n2. Install dependencies:\n   ```sh\n   pip install -r requirements.txt  # If required\n   ```\n3. Authenticate Firebase:\n   ```sh\n   firebase login\n   firebase init hosting\n   ```\n4. Configure Firebase settings (`firebase.json` and `.firebaserc` files as needed).\n\n## GitHub Actions Workflow\n### Rendering \u0026 Deployment\n- A GitHub Action (`deploy.yml`) runs `render.py` to update `index.html` whenever changes are made to `data.json`.\n- The updated site is deployed to Firebase.\n- A scheduled daily action at **12:00 UTC** updates the page to reflect any changes.\n\n### Uploading Photos\n- Creating an **issue** with the child's name as the title and attaching an image triggers the `upload_image.yml` action.\n- The image is added to the repository, committed, and a new deployment is triggered.\n\n## Deployment\nAfter making changes, you can manually deploy the site with:\n```sh\nfirebase deploy\n```\n\nAlternatively, push changes to GitHub, and the workflow will handle the deployment automatically.\n\n## Contributing\n1. Fork the repository.\n2. Create a new branch (`feature-branch`).\n3. Commit changes and push.\n4. Open a Pull Request for review.\n\n## License\nThis project is licensed under the MIT License.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandresmarinabad%2Ffamilyprogressweb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandresmarinabad%2Ffamilyprogressweb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandresmarinabad%2Ffamilyprogressweb/lists"}