{"id":15027753,"url":"https://github.com/rmurussi/cherrystar","last_synced_at":"2025-04-09T20:22:25.949Z","repository":{"id":196542377,"uuid":"529700857","full_name":"rmurussi/cherrystar","owner":"rmurussi","description":"CherryStar is a compilation of technologies that you must know to work as back-end or front-end developer.","archived":false,"fork":false,"pushed_at":"2024-02-26T12:26:57.000Z","size":510,"stargazers_count":9,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-23T22:14:03.838Z","etag":null,"topics":["apollo","apollo-client","docker","graphql","laravel","laravel-framework","lighthouse","material-ui","mui5","nodejs","php81","postgres","reactjs","redis","sanctum-authentication","tenancy","tenancyforlaravel","typescript"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rmurussi.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-08-27T21:29:35.000Z","updated_at":"2023-12-04T12:48:06.000Z","dependencies_parsed_at":null,"dependency_job_id":"b914f68a-9bc4-482c-9f0a-79016c734417","html_url":"https://github.com/rmurussi/cherrystar","commit_stats":null,"previous_names":["rmurussi/cherrystar"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rmurussi%2Fcherrystar","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rmurussi%2Fcherrystar/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rmurussi%2Fcherrystar/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rmurussi%2Fcherrystar/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rmurussi","download_url":"https://codeload.github.com/rmurussi/cherrystar/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248104723,"owners_count":21048395,"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":["apollo","apollo-client","docker","graphql","laravel","laravel-framework","lighthouse","material-ui","mui5","nodejs","php81","postgres","reactjs","redis","sanctum-authentication","tenancy","tenancyforlaravel","typescript"],"created_at":"2024-09-24T20:06:59.540Z","updated_at":"2025-04-09T20:22:25.854Z","avatar_url":"https://github.com/rmurussi.png","language":"PHP","funding_links":["https://ko-fi.com/renanmurussi"],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\u003ca href=\"https://github.com/rmurussi/cherrystar\" target=\"_blank\"\u003e\u003cimg src=\"https://repository-images.githubusercontent.com/529700857/52335296-b88e-41a2-910b-ca55799054a4\" width=\"400\" alt=\"CherryStar Logo\"\u003e\u003c/a\u003e\u003c/p\u003e\r\n\r\n# CherryStar - Study case, starting with recent technologies\r\n\r\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![\"Buy Me A Coffee\"](https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png)](https://ko-fi.com/renanmurussi)\r\n\r\nCherryStar is a compilation of technologies that you must know to work as back-end or front-end developer.\r\n\r\nYou will learn:\r\n - MUI: framework front-end\r\n - typescript lang\r\n - Reactjs: useEffect, useState\r\n - Apollo: useQuery, useMutation\r\n - tenancy: central database to login\r\n - tenancy: each user have a database\r\n - GraphQL: queries and mutations\r\n - Laravel: sail \"easy docker\"\r\n - Sanctum: user-token\r\n - WSL2: (windows with linux enviroment)\r\n - Redis: (database key-value) to cache GraphQL and everything you like\r\n - PostgresSQL: database\r\n\r\n:star: Do not forget to star (Top right of this page) :star:\r\n\r\n## Technology Stack\r\n\r\n### Front-End\r\n - [Material UI V5](https://material-ui.com/)\r\n - [ReactJS](https://reactjs.org)\r\n - [typescript](https://www.typescriptlang.org)\r\n - [Apollo](https://www.apollographql.com/docs/)\r\n\r\n### Back-End\r\n - [Laravel](https://laravel.com/docs/9.x/)\r\n - [GraphQL](https://graphql.org)\r\n - [tenancy](https://tenancyforlaravel.com/)\r\n - [Sanctum](https://laravel.com/docs/9.x/sanctum)\r\n\r\n### Enviroment\r\n - [Docker](https://www.docker.com)\r\n - [Sail](https://laravel.com/docs/9.x/sail)\r\n - [Node](https://nodejs.org/)\r\n - [PostgresSQL 14](https://www.postgresql.org)\r\n - [Redis](https://redis.io)\r\n - [Php8.1](https://www.php.net)\r\n\r\n\r\n## Getting Started\r\n\r\n### Windows WSL2\r\n\r\n - [Installation Guide](https://docs.microsoft.com/en-us/windows/wsl/install)\r\n\r\nFrom terminal/WSL2 - You MUST clone at /var/www/\r\n``` bash\r\ncd /var/www\r\ngit clone https://github.com/rmurussi/cherrystar\r\n\r\ncd /var/www/cherrystar/cherrystar-back-end\r\ncp .env.example .env\r\ncomposer update\r\n\r\ncd /var/www/cherrystar\r\nchmod +x docker-build.sh\r\necho \"Let's take a coffe, while docker do the hard job\" \u0026\u0026 \\\r\n./docker-build.sh\r\n\r\n```\r\n\r\nDocker Desktop - Open *Bash* of containner `cherrystar: laravel-cherrystar`\r\n\r\n``` bash\r\ncomposer install\r\ncp .env.example .env\r\nphp artisan migrate\r\nphp artisan db:seed\r\n\r\nphp artisan cache:clear\r\ncomposer dump-autoload\r\n\r\nchown 1000:sail -R *\r\nchmod -R 777 storage -R *\r\n\r\n```\r\n\r\n### Now you have the app on - WOW!\r\n\r\n - Navigate to: [http://localhost:3000](http://localhost:3000)\r\n\r\n - Maybe you need to wait some seconds - Node is building...\r\n\r\n### Congrats, look what you did :D\r\n - Cloned a project with git on github\r\n - Started a project on Sail - Laravel\r\n - Created a Docker enviroment\r\n - Most recent technologies integration\r\n - Front-end enviroment integrated with back-end app\r\n - Top Skills: GraphQL, Redis, Php8.1, ReactJS, Apollo, MUI, PostgreSQL\r\n - An application front-end + back-end that log-in using GraphQL Mutation (Sanctum). An App that have a central base to log-in, each user having a database(tenancy). When an user log-in, laravel save `Resquest data` in `database-user.access` [IP/Browser/Timestamp] and return a token of the user(Sanctum).\r\n - After log-in, you'll see a grid with a list of the latest accesses in the database of your user.\r\n\r\n# Go beyond - next steps\r\n\r\n## I suggest you do it yourself\r\n\r\n### Laravel\r\n - Change Sanctum to Oauth2 (Most used technology for log-in)\r\n - Create access rules for users in environment back-end/front-end\r\n - Change Tanancy token to Tanancy Domain/Sub-Domain\r\n - Change GraphQL-Query table `Access`, to load data from `access` with pagination\r\n - Set trust Host \u0026 Proxies\r\n - GraphQL Mutation to register new user and tenancy\r\n\r\n### ReactJS\r\n - Create a Loader on sign-in\r\n - Create a Loader on sign-out\r\n - Login (New Page with route)\r\n - List Access (New Page with route)\r\n - Register (New Page with route)\r\n - Validation forms in reacjs with [Yup](https://www.npmjs.com/package/yup)\r\n - Validate mutation and query return from GraphQL\r\n - I18n, make the app multi-lang\r\n\r\n### [Heroku](https://www.heroku.com)\r\n - Free cloud to host your app\r\n\r\n# Inspirations\r\n - [MUI](https://github.com/mui/material-ui)\r\n - [Apollo - machadop1407](https://github.com/machadop1407/graphql-full-course)\r\n - [Berry Free - codedthemes](https://github.com/codedthemes/berry-free-react-admin-template)\r\n - [ReactJS - yt/PedroTechnologies](https://www.youtube.com/watch?v=QhbM9r1wdxk)\r\n\r\n# Author\r\n - CherryStar is developed by me [Renan R. Murussi](https://www.linkedin.com/in/renan-rubatini-murussi-4405ba31/)\r\n\r\n# Issues\r\n - To report a bug, please submit an issue on Github. I will respond as soon as possible to resolve the issue.\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frmurussi%2Fcherrystar","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frmurussi%2Fcherrystar","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frmurussi%2Fcherrystar/lists"}