{"id":14955483,"url":"https://github.com/steveoro/goggles_main","last_synced_at":"2025-09-30T13:31:07.032Z","repository":{"id":54256020,"uuid":"333383179","full_name":"steveoro/goggles_main","owner":"steveoro","description":"Main Goggles front-end UI, version 7 and onward","archived":false,"fork":false,"pushed_at":"2025-01-04T17:45:27.000Z","size":10078,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-14T11:20:52.640Z","etag":null,"topics":["docker","docker-compose","goggles","rails","rails6","sports","swimming"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/steveoro.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":null,"patreon":null,"open_collective":"master-goggles","ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":["https://paypal.me/StefanoAlloro"]}},"created_at":"2021-01-27T10:27:36.000Z","updated_at":"2025-01-04T17:09:26.000Z","dependencies_parsed_at":"2024-03-11T14:44:10.099Z","dependency_job_id":"4c2c04d8-9a8a-40e1-9fbc-660d965fd545","html_url":"https://github.com/steveoro/goggles_main","commit_stats":{"total_commits":337,"total_committers":1,"mean_commits":337.0,"dds":0.0,"last_synced_commit":"72ee19f0e3ff227f6f2aa80cae708d41a3db79c5"},"previous_names":[],"tags_count":30,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/steveoro%2Fgoggles_main","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/steveoro%2Fgoggles_main/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/steveoro%2Fgoggles_main/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/steveoro%2Fgoggles_main/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/steveoro","download_url":"https://codeload.github.com/steveoro/goggles_main/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234737856,"owners_count":18879180,"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","docker-compose","goggles","rails","rails6","sports","swimming"],"created_at":"2024-09-24T13:11:13.240Z","updated_at":"2025-09-30T13:31:01.162Z","avatar_url":"https://github.com/steveoro.png","language":"Ruby","funding_links":["https://opencollective.com/master-goggles","https://paypal.me/StefanoAlloro"],"categories":[],"sub_categories":[],"readme":"# Goggles Main\n\n[![CircleCI](https://dl.circleci.com/status-badge/img/gh/steveoro/goggles_main/tree/main.svg?style=svg)](https://dl.circleci.com/status-badge/redirect/gh/steveoro/goggles_main/tree/main)\n[![Maintainability](https://api.codeclimate.com/v1/badges/5179d7eefd4cd93bfba1/maintainability)](https://codeclimate.com/github/steveoro/goggles_main/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/5179d7eefd4cd93bfba1/test_coverage)](https://codeclimate.com/github/steveoro/goggles_main/test_coverage)\n[![CodeCov](https://codecov.io/gh/steveoro/goggles_main/branch/main/graph/badge.svg?token=47SXT4CXGP)](https://codecov.io/gh/steveoro/goggles_main)\n[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fsteveoro%2Fgoggles_main.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2Fsteveoro%2Fgoggles_main?ref=badge_shield)\n\n\nMain client UI app for version 7 and onward.\n\n\n## Wiki \u0026 HOW-TOs\n\n- [Official Framework Wiki :link:](https://github.com/steveoro/goggles_db/wiki) (v. 7+)\n- [API docs  :link:](https://github.com/steveoro/goggles_api#goggles-api-readme)\n\n\n\n## Requires\n\n- Ruby 3.1.4\n- Rails 6.1.7.1+\n- MariaDb 10.6.12+ or any other MySql equivalent version\n\n\n## Configuration\n\nAll framework app projects (except for the mountable engines) handle multiple configurations for execution, development \u0026 deployment.\n\nYou can use each project in the framework:\n\n- as a full-blown, stand-alone, local installation (by cloning the source repo on `localhost`)\n- as a service composed from individual containers (either by rebuilding the individual containers from scratch or by pulling the images from their DockerHub repository)\n- in any other mixed way, be it the application running on `localhost` while accessing the DB inside a container or vice-versa.\n\n\n## Quick-start as a running container\n\n### Framework repositories already cloned on `localhost`\n\nTo use \u0026 bind together all 3 services (`db`, `api` \u0026 `app`) you can use one of the available docker-compose files after you've cloned the Main repo.\n\nCloning also `goggles_api` repo is not needed since you can just recreate the required folder structure to map to a local `master.key` for the credentials, as outlined in the next paragraph (\"Nothing installed on `localhost` (except `docker`)\").\n\nMake sure you have a recovery DB dump somewhere (a test dump can be obtained by cloning `goggles_db` repo).\n\nCopy the recovery DB dump (for instance, `test.sql.bz2`) to the shared dump folder of this project: `db/dump`.\n\nIf your goal is to use, for example, the `development` configuration, go with:\n\n```bash\n$\u003e docker-compose -f docker-compose.dev.yml up\n```\n\nLeave the container up running and type in another console:\n\n```bash\n$\u003e docker exec -it goggles-main.dev sh -c 'bundle exec rails db:rebuild from=test to=development'\n```\n\nThen point your browser to `http://127.0.0.1:8080/`.\n\nDone! :+1:\n\n\n### Nothing installed on `localhost` (except `docker`)\n\nFirst thing first, you'll need to recreate this shared folder structure:\n\n```\n ---+--- goggles_main --- config (\u003c=| Main master.key)\n    |         |\n    |         +---------- db --- dump (\u003c=| test.sql.bz2)\n    |\n    +--- goggles_api ---- config (\u003c=| API master.key)\n```\n\nThese are published as volumes inside the service containers for serializing and accessing local data.\n\nA mirror `db/dump` subfolder for `goggles_api` is not needed unless you'd like to run DB management tasks from the `api` service rails console (instead of just using the main `app` service's console).\n\nThe `master.key` usually can be regenerated if missing, provided that the credentials are kept consistent among each app container by using `rails credentials:edit` \u0026 by running the rails task to update the settings.\nCheck out our [credentials Wiki page](https://github.com/steveoro/goggles_db/wiki/HOWTO-dev-Goggles_credentials) or [GogglesDb README on database setup](https://github.com/steveoro/goggles_db#database-setup) for more details.\n\nThen, you'll need to run and connect all 3 services: `db`, `api` \u0026 `app`.\nRefer to the dedicated [Wiki page](https://github.com/steveoro/goggles_db/wiki/HOWTO-dev-docker_usage_for_GogglesApi#how-to-docker-usage-with-gogglesapi-as-example) for details.\n\n\n\n## More information\n\nCheck out our [Wiki :link:](https://github.com/steveoro/goggles_db/wiki) and the README files from each subproject for more information. In particular:\n\n- [Suggested tools for development](https://github.com/steveoro/goggles_api#suggested-tools)\n- [Repository credentials: management and creation](https://github.com/steveoro/goggles_db/wiki/HOWTO-dev-Goggles_credentials)\n- [How to update the GogglesDb gem](https://github.com/steveoro/goggles_api#source-dependencies--how-to-update-gogglesdb)\n- [DB setup](https://github.com/steveoro/goggles_db#database-setup)\n- [How to run the test suite](https://github.com/steveoro/goggles_api#how-to-run-the-test-suite) (can be applied to `goggles_main` as well)\n- [Dev workflow](https://github.com/steveoro/goggles_api#dev-workflow-for-contributors)\n- [Getting started: GogglesAPI \u0026 container usage](https://github.com/steveoro/goggles_db/wiki/HOWTO-dev-docker_usage_for_GogglesApi#getting-started-setup-and-usage-as-a-composed-docker-service) (can be applied to `goggles_main` as well)\n\n\n* * *\n\n\n## Deployment\n\nThe build pipeline is configured for auto-deploy on each successful build.\n\nUntagged changes will yield a `staging` deployment, while any tagged release (made from GitHub) will yield a `production` deployment.\n\nSee the [Wiki page about the build pipeline](https://github.com/steveoro/goggles_db/wiki/HOWTO-devops-build_pipeline_setup) for more details.\n\n\n* * *\n\n\n## Contributing\n1. Clone the project.\n2. Make a new custom branch for your changes, naming the branch accordingly (i.e. use prefixes like: `feature-`, `fix-`, `upgrade-`, ...).\n3. When you think you're done, make sure you type `guard` (+`Enter`) and wait for the whole spec suite to end.\n4. Make sure your branch is locally green (:green_heart:) before submitting the pull request.\n5. Await the PR's review by the maintainers.\n\n\n## License\nThe application is available as open source under the terms of the [LGPL-3.0 License](https://opensource.org/licenses/LGPL-3.0).\n\n[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fsteveoro%2Fgoggles_main.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Fsteveoro%2Fgoggles_main?ref=badge_large)\n\n\n## Supporting\n\nCheck out the \"sponsor\" button at the top of the page.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsteveoro%2Fgoggles_main","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsteveoro%2Fgoggles_main","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsteveoro%2Fgoggles_main/lists"}