{"id":18887826,"url":"https://github.com/masterfermin02/leaderboard","last_synced_at":"2025-06-23T00:36:08.453Z","repository":{"id":233672796,"uuid":"342876100","full_name":"masterfermin02/leaderboard","owner":"masterfermin02","description":"Fullstack, React + Node JS","archived":false,"fork":false,"pushed_at":"2021-02-28T22:47:39.000Z","size":1511,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-05-31T12:21:25.918Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/masterfermin02.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"License.pdf","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}},"created_at":"2021-02-27T14:30:04.000Z","updated_at":"2023-03-04T17:52:10.000Z","dependencies_parsed_at":"2024-04-17T04:30:15.156Z","dependency_job_id":null,"html_url":"https://github.com/masterfermin02/leaderboard","commit_stats":null,"previous_names":["masterfermin02/leaderboard"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/masterfermin02/leaderboard","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/masterfermin02%2Fleaderboard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/masterfermin02%2Fleaderboard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/masterfermin02%2Fleaderboard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/masterfermin02%2Fleaderboard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/masterfermin02","download_url":"https://codeload.github.com/masterfermin02/leaderboard/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/masterfermin02%2Fleaderboard/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261391018,"owners_count":23151660,"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-11-08T07:39:47.786Z","updated_at":"2025-06-23T00:36:03.435Z","avatar_url":"https://github.com/masterfermin02.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Fullstack, React + Node JS\r\n\r\n# Main Goal\r\n\r\nYour task is to create a project using React JS that uses a REST API based on Node JS. The Frontend\r\nhas to be responsive and the Backend has to handle a database of:\r\n− Participants and\r\n− Skills.\r\nNote: For React you can use the libraries you prefer in order to accomplish the requirements.\r\n\r\n# LeaderBoard\r\n\r\nThis repo is meant to keep track of the changes made to the frontend and backend of the **Leaderboard** challenge.\r\n\r\n## Project  Requirements\r\n\r\n- [Docker](https://docs.docker.com/get-docker/)\r\n- [docker-compose](https://docs.docker.com/compose/install/)\r\n\r\nThere is no need for the developers to install MongoDB since all this is included in the Docker service.\r\n\r\n## Project Structure\r\n\r\n\r\n    .\r\n    ├── public # Icludes public files of the frontend\r\n    ├── server\r\n        ├── src\r\n            ├── controllers     # Includes the CRUD functions\r\n            ├── database\r\n                └── models      # Inlcudes the mongoose models\r\n            └── index.js        # Server Configuration files\r\n        ├── .env.sample\r\n        ├── .gitignore\r\n        ├── docker-compose.yml  # Docker Compose File\r\n        ├── Dockerfile\r\n        ├── package-lock.json\r\n        ├── package.json\r\n    ├── src\r\n        ├── assets # images and files for fronted\r\n        ├── Components # Components of the application\r\n        ├── Context # Includes context to share data with components\r\n        ├── helpers # Includes  api request helpers functions\r\n        ├── App.js\r\n        ├── App.test.js\r\n        ├── index.css\r\n        ├── index.js\r\n        ├── logo.png\r\n        ├── registerServiceWorker.js\r\n        ├── .eslintcache\r\n        ├── .gitiignore\r\n        ├── package.json\r\n\r\n## How to execute the project\r\n\r\nIf you want to be able to execute the project you will first need to install the requirements listed in the [Project Requirements Section](#project--requirements).\r\n\r\n- Clone this repo by running:\r\n\r\n  ```bash\r\n  git clone git@github.com:masterfermin02/leaderboard.git\r\n  ```\r\n\r\n- Create the `.env` file:\r\n\r\n  ```bash\r\n  ./init-env.sh\r\n  ```\r\n\r\n### You can run the app using Docker and Make:\r\n\r\n- Build the database container, seed it and also install server dependencies:\r\n\r\n```bash\r\nmake build\r\n```\r\n\r\n- Run the nodejs server:\r\n\r\n```bash\r\nmake backend\r\n```\r\n\r\n- Install frontend dependencies:\r\n```bash\r\nnpm install\r\n```\r\n\r\n- Start the local frontend app\r\n\r\n```bash\r\nmake frontend\r\n```\r\n\r\n- You should see the app running on:\r\n```\r\n  🚀 Client Running on: http://localhost:3000\r\n```\r\n\r\n- Stop the backend docker container\r\n\r\n```bash\r\nmake stop-backend\r\n```\r\n\r\n## Or, you can run the project manually:\r\n\r\n- Go the server folder\r\n```bash\r\n  cd server\r\n```\r\n\r\n- Create containers:\r\n```bash\r\n  docker-compose up\r\n```\r\n- Run the server:\r\n```bash\r\nnpm run start\r\n```\r\n\r\n- Generate the Sequelize seeds:\r\n```bash\r\n  docker cp server/db_backup/dbdump.json server_mongo_1:/tmp/dbdump.json\r\n\tdocker exec server_mongo_1 mongoimport --db test --collection users --jsonArray --authenticationDatabase admin --username root --password example --file /tmp/dbdump.json\r\n```\r\n\r\nThe local development server will be running at localhost:5000. At the same time you will have a database administration interface (by Adminer) running at localhost:8081.\r\n\r\n- Go back to the root folder\r\n```bash\r\n  cd ..\r\n```\r\n\r\n- Start frontend application\r\n```bash\r\nnpm start\r\n```\r\n\r\nThe local frontend application will be running at localhost:3000.\r\n\r\n- Server and api documentations are on the server folder:\r\n[Server doc](https://github.com/masterfermin02/leaderboard/tree/main/server)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmasterfermin02%2Fleaderboard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmasterfermin02%2Fleaderboard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmasterfermin02%2Fleaderboard/lists"}