{"id":16813351,"url":"https://github.com/frouioui/dashboard-epitech","last_synced_at":"2025-03-22T03:31:14.530Z","repository":{"id":39327480,"uuid":"217924104","full_name":"frouioui/dashboard-epitech","owner":"frouioui","description":"ReactJS frontend to create a dashboard using multiple services such as student grade, weather, stocks and so on. The website depends on a micro service architecture and has multiple backend services coded in Golang, Python and NodeJS. The website runs on a GCP environnement.","archived":false,"fork":false,"pushed_at":"2023-01-04T12:52:45.000Z","size":20388,"stargazers_count":3,"open_issues_count":25,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-18T07:32:23.236Z","etag":null,"topics":["frontend","golang","micro-services","reactjs"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/frouioui.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}},"created_at":"2019-10-27T22:18:54.000Z","updated_at":"2022-01-24T08:06:47.000Z","dependencies_parsed_at":"2023-02-02T13:00:53.625Z","dependency_job_id":null,"html_url":"https://github.com/frouioui/dashboard-epitech","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frouioui%2Fdashboard-epitech","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frouioui%2Fdashboard-epitech/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frouioui%2Fdashboard-epitech/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frouioui%2Fdashboard-epitech/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/frouioui","download_url":"https://codeload.github.com/frouioui/dashboard-epitech/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244902929,"owners_count":20529114,"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":["frontend","golang","micro-services","reactjs"],"created_at":"2024-10-13T10:26:21.036Z","updated_at":"2025-03-22T03:31:11.823Z","avatar_url":"https://github.com/frouioui.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# **Dashboard Epitech**\n\n## **Authors**\n\n- florent.poinsard@epitech.eu\n- julien.ferrier@epitech.eu\n\n## **Architecture *(the big pitcure)***\n\nOur project is divided into multiple micro-services.\n\nThis architecture allows us to work faster and code API that are scalable and that we can easily manage.\n\nThis kind of architecture (micro-services) is used more and more by tech companies. It allows :\n- Better team organisation.\n- Less frustration between teams.\n- Less errors in code and production environment.\n- The ability to code with different programming language, making it easier to use the right programming language for the right situation.\n\n### **The services**\n\n- Users API ([documentation](./api/users/README.md))\n- Widget API ([documentation](./api/widget/README.md))\n- News Service API ([documentation](./api/news/README.md))\n- Intranet Epitech Service API ([documentation](./api/intra/README.md))\n- Currency API ([documentation](./api/currency/README.md))\n- GitHub API ([documentation](./api/github/README.md))\n- Frontend ([documentation](./docs/doc_ui_ux_dashboard.pdf))\n\n## **Production deployement**\n\nOur project uses `docker-compose` and `google cloud platform`.\n\n### **Docker compose**\n\nDocker compose is used for **local environment only**.\n\nTo build the project: `$\u003e docker-compose build`\n\nTo run the project: `$\u003e docker-compose up`\n\n### **Google Cloud Platform**\n\nGoogle Cloud Platform is uses for **production environment only**.\n\nEvery time a push or a pull requested is validated by ***Travis CI*** all the services are pushed to the productions servers.\n\nEach push create a new versions of the APIs and the Frontend service.\n\nThe production environment dashboard is accessible at: `https://pedafy.com`\n\n## **Frontend**\n\nThe frontend (main application) is available at `http://localhost` (on local env).\n\nWe used ReactJS. Why did we?\n\nWe decided to use ReactJS beceause it is a framework used by more and more companies. It is a nice assets to know how to use this technology when looking for a job. Also, it is a easy framework and does not require a lot of work to get around it.\n\n## **Bonuses**\n\n- Micro services Architecture.\n    - 10 independant services.\n    - 12 factors app.\n    - Each API respects ISO rules and follow the Richardson Maturity Mode. \n\n- Deploiement\n    - Travis CI deploys automatically to Google App Engine every single services\n\n- Database\n    - Usage of MySQL database\n    - PhpMyAdmin\n\n- Environment\n    - Two environment (Dev and Prod)\n    - Production servers\n        - 1 server for each service/API (beside PMA and SQL) for a total of 9 servers\n        - Code automatically pushed and run on servers for every push on branch master\n        - Managment of DNS\n        - SSL certificat\n        - Multiple routes (defines at the root of the repo './dispatch.yaml')\n\n- GitHub\n    - Huge usage of issue\n    - Huge usage of PR\n    - Daily meeting reports\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffrouioui%2Fdashboard-epitech","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffrouioui%2Fdashboard-epitech","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffrouioui%2Fdashboard-epitech/lists"}