{"id":22382003,"url":"https://github.com/googleinterns/oauth2l-web","last_synced_at":"2025-07-31T03:30:34.117Z","repository":{"id":49730078,"uuid":"273540582","full_name":"googleinterns/oauth2l-web","owner":"googleinterns","description":null,"archived":false,"fork":false,"pushed_at":"2023-02-25T06:25:20.000Z","size":10304,"stargazers_count":7,"open_issues_count":1,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2023-05-18T11:15:06.156Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://oauth2l-web.vercel.app","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/googleinterns.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}},"created_at":"2020-06-19T16:33:54.000Z","updated_at":"2022-09-30T15:31:05.000Z","dependencies_parsed_at":"2022-09-10T08:41:05.377Z","dependency_job_id":null,"html_url":"https://github.com/googleinterns/oauth2l-web","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleinterns%2Foauth2l-web","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleinterns%2Foauth2l-web/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleinterns%2Foauth2l-web/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleinterns%2Foauth2l-web/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/googleinterns","download_url":"https://codeload.github.com/googleinterns/oauth2l-web/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228209948,"owners_count":17885595,"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":[],"created_at":"2024-12-05T00:11:30.431Z","updated_at":"2024-12-05T00:11:31.124Z","avatar_url":"https://github.com/googleinterns.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OAuth2l Authentication Playground\r\n\r\nThe OAuth2l Authentication Playground is a web application where users can interact with the OAuth2l CLI tool using a GUI. Its primary use is to allow developers to interactively experiment with all the authentication flows and tokens supported in GCP.\r\n\r\n## Overview\r\nThe Authentication Playground was designed to provide an intuitive and functional interface that will improve the experience for users interested in using the OAuth2l without being restricted to the CLI. The application is built on top of the OAuth2l, which allows it to inherit all its functionality and be adapted to fit future updates as well.\r\n\r\n## Build Status\r\n![GITHUB-BADGE](https://github.com/googleinterns/oauth2l-web/workflows/api/badge.svg) ![GITHUB-BADGE](https://github.com/googleinterns/oauth2l-web/workflows/client/badge.svg)\r\n\r\n ## Architecture\r\nThis application is built using  [React.JS](https://reactjs.org) on the frontend, themed with the [Material-UI](https://material-ui.com) library and uses [Go](https://golang.org) for the backend.\r\n\r\n## Quickstart\r\nFirst clone the repository using the following command:\r\n\r\n```bash\r\n$ git clone https://github.com/googleinterns/oauth2l-web\r\n```\r\nThen go into the `web` directory in your `oauth2l-web` directory.\r\n```bash\r\n$ cd oauth2l-web/web\r\n```\r\n\r\n### Docker\r\nDownload [Docker](https://docs.docker.com/get-docker/) if not already installed. \r\n\r\n#### Running the Web Application\r\nCreate the images for the backend and the frontend by running the following command:\r\n```bash\r\n$ docker-compose up -d --build\r\n```\r\nThe application should then be running on http://localhost:3000.\r\n\r\nTo stop the application, run the following commands:\r\n```bash\r\n$ docker-compose stop\r\n$ docker-compose rm -f\r\n```\r\n#### Running just the Frontend or Backend\r\nFor the frontend, go into the `web/client` folder. For the backend, go into the `web/api` folder. Then to build the image, run the following command:\r\n\r\n```bash\r\n$ docker build -t oauth2l-web-\u003cfrontend/backend\u003e\r\n```\r\nThen run the image with the following command:\r\n```bash\r\n$ docker run --detach --name oauth2l-web-frontend -p 3000:3000 -d oauth2l-web-frontend #frontend\r\n$ docker run --detach --name oauth2l-web-backend -p 8080:8080 -d oauth2l-web-backend #backend\r\n```\r\nTo stop the image, run the following command\r\n```bash\r\n$ docker container stop oauth2l-web-\u003cfrontend/backend\u003e\r\n$ docker container rm oauth2l-web-\u003cfrontend/backend\u003e\r\n```\r\n### Everywhere else\r\n#### Requirements\r\n\r\nThe requirements needed to run the web application are:\r\n\r\n| Requirements     | Link\r\n| ------ | ---\r\n| Node | https://nodejs.org/en/\r\n| npm | https://www.npmjs.com/get-npm\r\n| Golang | https://golang.org/dl/\r\n| OAuth2l | https://github.com/google/oauth2l\r\n\r\n#### Installing Packages\r\n\r\nGo into your `web/api` directory and install the `go` libraries used in the application. \r\n```bash\r\n$ cd web/api\r\n$ go get .\r\n```\r\nThen go into the `web/client` directory and install the libaries used for the front-end.\r\n```bash\r\n$ cd web/client\r\n$ npm install\r\n```\r\n#### Running the Application\r\n\r\nTo run the application, go into the `web/api` directory and run the two files `backend.go` and `wrapper.go`.\r\n```bash\r\n$ go run backend.go wrapper.go\r\n```\r\nThen, in a separate terminal, go into the `web/client` directory and then start the react app.\r\n```bash\r\n$ npm start\r\n```\r\nA webpage with the address `localhost:3000` should appear in a web browser page with the application running. \r\n\r\n## Testing\r\n### Frontend\r\nThe unit tests for the frontend are written using [Jest](https://jestjs.io).\r\nTo run the tests, first go into the `web/client` directory and run the following command:\r\n```bash\r\n$ npm run test\r\n```\r\n### Backend\r\nThe unit for the backend are written using Go's libraries, [testing](https://golang.org/pkg/testing/) and [httptest](https://golang.org/pkg/net/http/httptest/).\r\nTo run the tests, first go into the `web/api` directory and run the following command:\r\n```bash\r\n$ go test\r\n```\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoogleinterns%2Foauth2l-web","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgoogleinterns%2Foauth2l-web","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoogleinterns%2Foauth2l-web/lists"}