{"id":19972640,"url":"https://github.com/jpb06/dev-friends-starter","last_synced_at":"2025-05-04T01:30:52.802Z","repository":{"id":41985776,"uuid":"380789582","full_name":"jpb06/dev-friends-starter","owner":"jpb06","description":"Let's toy with react using nextjs and material-ui.","archived":false,"fork":false,"pushed_at":"2023-09-22T12:18:00.000Z","size":733,"stargazers_count":4,"open_issues_count":0,"forks_count":4,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-08T01:01:47.753Z","etag":null,"topics":["bootstrapper","material-ui","nextjs-starter"],"latest_commit_sha":null,"homepage":"https://devfriends-backend.fly.dev","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/jpb06.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}},"created_at":"2021-06-27T16:36:51.000Z","updated_at":"2023-03-08T23:41:58.000Z","dependencies_parsed_at":"2023-09-23T16:18:50.056Z","dependency_job_id":null,"html_url":"https://github.com/jpb06/dev-friends-starter","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jpb06%2Fdev-friends-starter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jpb06%2Fdev-friends-starter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jpb06%2Fdev-friends-starter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jpb06%2Fdev-friends-starter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jpb06","download_url":"https://codeload.github.com/jpb06/dev-friends-starter/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252276955,"owners_count":21722447,"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":["bootstrapper","material-ui","nextjs-starter"],"created_at":"2024-11-13T03:08:46.078Z","updated_at":"2025-05-04T01:30:52.086Z","avatar_url":"https://github.com/jpb06.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DevFriends bootstrapper\n\n[![Open in Visual Studio Code](https://img.shields.io/static/v1?logo=visualstudiocode\u0026label=\u0026message=Open%20in%20Visual%20Studio%20Code\u0026labelColor=2c2c32\u0026color=007acc\u0026logoColor=007acc)](https://github.dev/jpb06/dev-friends-starter)\n![Last commit](https://img.shields.io/github/last-commit/jpb06/dev-friends-starter?logo=git)\n\nHere is a project based on nextjs and material-ui to toy a bit with react.\n\n\u003c!-- readme-package-icons start --\u003e\n\n\u003cp align=\"left\"\u003e\u003ca href=\"https://www.typescriptlang.org/docs/\" target=\"_blank\"\u003e\u003cimg height=\"50\" src=\"https://raw.githubusercontent.com/jpb06/jpb06/master/icons/TypeScript.svg\" /\u003e\u003c/a\u003e\u0026nbsp;\u003ca href=\"https://nodejs.org/en/docs/\" target=\"_blank\"\u003e\u003cimg height=\"50\" src=\"https://raw.githubusercontent.com/jpb06/jpb06/master/icons/NodeJS-Dark.svg\" /\u003e\u003c/a\u003e\u0026nbsp;\u003ca href=\"https://yarnpkg.com/api/\" target=\"_blank\"\u003e\u003cimg height=\"50\" src=\"https://raw.githubusercontent.com/jpb06/jpb06/master/icons/Yarn-Dark.svg\" /\u003e\u003c/a\u003e\u0026nbsp;\u003ca href=\"https://babeljs.io/docs/en/\" target=\"_blank\"\u003e\u003cimg height=\"50\" src=\"https://raw.githubusercontent.com/jpb06/jpb06/master/icons/Babel-Dark.svg\" /\u003e\u003c/a\u003e\u0026nbsp;\u003ca href=\"https://emotion.sh/docs/introduction\" target=\"_blank\"\u003e\u003cimg height=\"50\" src=\"https://raw.githubusercontent.com/jpb06/jpb06/master/icons/Emotion-Dark.svg\" /\u003e\u003c/a\u003e\u0026nbsp;\u003ca href=\"https://eslint.org/docs/latest/\" target=\"_blank\"\u003e\u003cimg height=\"50\" src=\"https://raw.githubusercontent.com/jpb06/jpb06/master/icons/Eslint-Dark.svg\" /\u003e\u003c/a\u003e\u0026nbsp;\u003ca href=\"https://jestjs.io/docs/getting-started\" target=\"_blank\"\u003e\u003cimg height=\"50\" src=\"https://raw.githubusercontent.com/jpb06/jpb06/master/icons/Jest.svg\" /\u003e\u003c/a\u003e\u0026nbsp;\u003ca href=\"https://mui.com/material-ui/getting-started/overview/\" target=\"_blank\"\u003e\u003cimg height=\"50\" src=\"https://raw.githubusercontent.com/jpb06/jpb06/master/icons/MaterialUI-Dark.svg\" /\u003e\u003c/a\u003e\u0026nbsp;\u003ca href=\"https://nextjs.org/docs/getting-started\" target=\"_blank\"\u003e\u003cimg height=\"50\" src=\"https://raw.githubusercontent.com/jpb06/jpb06/master/icons/NextJS-Dark.svg\" /\u003e\u003c/a\u003e\u0026nbsp;\u003ca href=\"https://prettier.io/docs/en/index.html\" target=\"_blank\"\u003e\u003cimg height=\"50\" src=\"https://raw.githubusercontent.com/jpb06/jpb06/master/icons/Prettier-Dark.svg\" /\u003e\u003c/a\u003e\u0026nbsp;\u003ca href=\"https://reactjs.org/docs/getting-started.html\" target=\"_blank\"\u003e\u003cimg height=\"50\" src=\"https://raw.githubusercontent.com/jpb06/jpb06/master/icons/React-Dark.svg\" /\u003e\u003c/a\u003e\u0026nbsp;\u003ca href=\"https://testing-library.com/docs/\" target=\"_blank\"\u003e\u003cimg height=\"50\" src=\"https://raw.githubusercontent.com/jpb06/jpb06/master/icons/TestingLibrary-Dark.svg\" /\u003e\u003c/a\u003e\u003c/p\u003e\n\n\u003c!-- readme-package-icons end --\u003e\n\n## ⚡ Advices\n\n- Do not hesitate to use react ecosystem to answer our needs. There is no limitation.\n- Our application is using [material-ui](https://mui.com/material-ui/getting-started/overview/). Take advantage of the documentation to get working code from examples.\n\n## ⚡ Case study\n\nYour new boss comes at your desk today. He says there is a lot of devs in the team right now, and each one of them is assigned to a squad. But he cannot keep up with who is in which squad.\n\nHe wants you to make an app allowing him to see developers and filter them by squad. Then, once you're done, he may come back to ask you for something extra: the ability to move a dev to another squad.\n\n### 🔶 Step 1 : Displaying developers\n\nWe can begin by getting developers from our backend and display them. Remember there is no restriction on what we may use in the react ecosystem!\n\n### 🔶 Step 2 : Adding a filter to display only the developers of one or several squads\n\nThe next step is to add a filter component. This could be checkboxes or a multiselect for example.\n\n### 🔶 Step 3 : Change the squad of a developer\n\nFinally, we need to give a way to change the squad of a developer. This could be done on a new page or in a modal, for example.\n\n## ⚡ Data model\n\nOur backend is plugged to a database with the following schema:\n\n![Datamodel](./assets/dev-friends-model.png)\n\n## ⚡ Exposed routes\n\nOur backend exposes a swagger found [here](https://devfriends-backend.fly.dev). Let's summarizes the routes exposed:\n\n| Route                 | Verb    | Description                                                             |\n| --------------------- | ------- | ----------------------------------------------------------------------- |\n| 💥 /squads            | 🔹 GET  | Retrieves all squads                                                    |\n| 💥 /squads/{id}/devs  | 🔹 GET  | Retrieves all devs belonging to a squad                                 |\n| 💥 /devs              | 🔹 GET  | Retrieves all devs                                                      |\n| 💥 /devs/by-squad     | 🔸 POST | Retrieves devs belonging to a list of squads passed in the request body |\n| 💥 /devs/change-squad | 🔸 POST | Moves a developer to another squad                                      |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjpb06%2Fdev-friends-starter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjpb06%2Fdev-friends-starter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjpb06%2Fdev-friends-starter/lists"}