{"id":16162905,"url":"https://github.com/ipitio/sheet2app","last_synced_at":"2025-09-13T19:23:07.217Z","repository":{"id":209593502,"uuid":"724471499","full_name":"ipitio/Sheet2App","owner":"ipitio","description":"Create Apps with Google Sheets","archived":false,"fork":false,"pushed_at":"2023-11-28T20:34:46.000Z","size":1289,"stargazers_count":0,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-07T04:24:32.666Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/ipitio.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}},"created_at":"2023-11-28T06:25:09.000Z","updated_at":"2023-11-28T06:37:07.000Z","dependencies_parsed_at":null,"dependency_job_id":"d4eab3e8-e6af-4595-a010-9cbc4b97c470","html_url":"https://github.com/ipitio/Sheet2App","commit_stats":null,"previous_names":["ipitio/sheet2app"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ipitio/Sheet2App","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ipitio%2FSheet2App","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ipitio%2FSheet2App/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ipitio%2FSheet2App/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ipitio%2FSheet2App/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ipitio","download_url":"https://codeload.github.com/ipitio/Sheet2App/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ipitio%2FSheet2App/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275015152,"owners_count":25390814,"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","status":"online","status_checked_at":"2025-09-13T02:00:10.085Z","response_time":70,"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":[],"created_at":"2024-10-10T02:33:50.559Z","updated_at":"2025-09-13T19:23:07.176Z","avatar_url":"https://github.com/ipitio.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Sheet2App\n\nTeam Penguins presents Sheet2App, a web app that allows users to create web apps with Google Sheets.\n\n![index](./index.png)\n\n## Prerequisites\n\n### Linux\n\nInstall Docker and Compose Plugin\n\n* [CLI Only](https://docs.docker.com/compose/install/linux/#install-using-the-repository)\n* [Docker Desktop](https://www.docker.com/products/docker-desktop)\n\n### Windows\n\nInstall WSL2, Docker Desktop, and VSCode Extensions\n\n1. [WSL2](https://code.visualstudio.com/docs/remote/wsl-tutorial#_install-visual-studio-code)\n2. [Docker Desktop](https://learn.microsoft.com/en-us/windows/wsl/tutorials/wsl-containers)\n\n### Both\n\n1. Rename your `server/s2a_api/migrations` folder to something else.\n2. Set the OAuth Client ID environment variable in `client/Dockerfile`\n3. Set the OAuth Client ID and Secret environment variables in `server/Dockerfile`\n4. Store your Google Service Account credentials in `server/sheets/credentials.json`\n5. Store your Token in `server/token.json` (for testing purposes only)\n\n## Starting\n\n    docker compose up\n\nThis starts everything for you. Add:\n\n* `-d` to start in detached mode,\n* `--build` to rebuild the images.\n\nPlease wait a moment for the following to become available:\n\n* The client at \u003chttp://localhost:3000\u003e,\n* The server's admin panel at \u003chttp://localhost:8000/admin\u003e,\n  * The default username is `admin` with password `password`\n* The server's health checks at \u003chttp://localhost:8000/ht\u003e.\n\n## Stopping\n\n    docker compose down\n\nThis stops everything for you. Add:\n\n* `-v` to remove its volumes,\n* `--rmi all` to remove its images,\n* `-t 0` to stop immediately.\n\n## Testing\n\n[![status](https://github.com/ipitio/Sheet2App/actions/workflows/tests.yml/badge.svg)](https://github.com/ipitio/Sheet2App/actions/workflows/tests.yml)\n\n### Frontend\n\n    docker exec -it node npm test\n\nThis runs the client's tests in interactive mode. Alternatively, run:\n\n    docker exec node npm test -- --watchAll=false\n\n### Backend\n\n    docker exec django pytest\n\nThis runs the backend's tests. Add:\n\n* `-n logical` to run the tests in parallel,\n* `-v` for verbose output.\n\n#### Database\n\nYou can start a MySQL shell by executing:\n\n    docker exec -it mysql mysql -u root -p Sheet2App\n\nAnd entering the password `default-password`.\n\n#### Cache\n\nIf you started in detached mode, you can monitor Redis with:\n\n    docker exec redis redis-cli monitor\n\nClear it with:\n\n    docker exec redis redis-cli flushall\n\n\u003e ##### Note\n\u003e\n\u003e The cache is not persistent. It will be cleared when you stop the app.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fipitio%2Fsheet2app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fipitio%2Fsheet2app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fipitio%2Fsheet2app/lists"}