{"id":16786254,"url":"https://github.com/stefanosaffran/fastfeet","last_synced_at":"2025-03-22T00:32:28.351Z","repository":{"id":40463020,"uuid":"247936481","full_name":"StefanoSaffran/fastfeet","owner":"StefanoSaffran","description":"FastFeet -  A fictitious logistics company","archived":false,"fork":false,"pushed_at":"2023-12-15T02:53:44.000Z","size":4772,"stargazers_count":14,"open_issues_count":40,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-18T06:35:49.487Z","etag":null,"topics":["javascript","nodejs","omnistack","react-native","reactjs","rocketseat"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/StefanoSaffran.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":"2020-03-17T10:05:57.000Z","updated_at":"2023-10-10T11:40:18.000Z","dependencies_parsed_at":"2023-12-15T03:45:37.198Z","dependency_job_id":"80b0e0fc-23e6-49c6-a4e0-62efbf5f2ec0","html_url":"https://github.com/StefanoSaffran/fastfeet","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/StefanoSaffran%2Ffastfeet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StefanoSaffran%2Ffastfeet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StefanoSaffran%2Ffastfeet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StefanoSaffran%2Ffastfeet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/StefanoSaffran","download_url":"https://codeload.github.com/StefanoSaffran/fastfeet/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244890102,"owners_count":20527030,"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":["javascript","nodejs","omnistack","react-native","reactjs","rocketseat"],"created_at":"2024-10-13T08:11:43.867Z","updated_at":"2025-03-22T00:32:27.998Z","avatar_url":"https://github.com/StefanoSaffran.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"https://res.cloudinary.com/stefanosaffran/image/upload/v1581339291/wn3hrs8tpyejvw1nju7d.png\" /\u003e\n\u003c/div\u003e\n\n\u003ch1 align=\"center\"\u003e\n   FastFeet Fullstack app\n\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n\u003cimg alt=\"Last commit on GitHub\" src=\"https://img.shields.io/github/last-commit/StefanoSaffran/fastfeet?color=7D40E7\"\u003e\n\u003cimg alt=\"Made by Stefano\" src=\"https://img.shields.io/badge/made%20by-StefanoSaffran-%20?color=7D40E7\"\u003e\n\u003cimg alt=\"Project top programing language\" src=\"https://img.shields.io/github/languages/top/StefanoSaffran/fastfeet?color=7D40E7\"\u003e\n\u003cimg alt=\"Repository size\" src=\"https://img.shields.io/github/repo-size/StefanoSaffran/fastfeet?color=7D40E7\"\u003e\n\u003cimg alt=\"GitHub license\" src=\"https://img.shields.io/github/license/StefanoSaffran/fastfeet?color=7D40E7\"\u003e\n\u003c/p\u003e \n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#computer-project\"\u003e💻 Project\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003ca href=\"#rocket-built-with\"\u003e🚀 Built with\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003ca href=\"#information_source-getting-started\"\u003eℹ️ Getting Started\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003ca href=\"#page_with_curl-license\"\u003e📃 License\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003ca href=\"#mailbox_with_mail-get-in-touch\"\u003e📬 Get in touch\u003c/a\u003e\n\u003c/p\u003e\n\n## :computer: Project \n\n\u003ch4 align=\"center\"\u003e\n   Fastfeet is a fictitious logistics company and the application consists of an api in NodeJS, a web app in ReactJS, that allows the admin to manage recipients, deliverymen and deliveries and a mobile app in React Native, that allows the deliveryman to see and update the status of his deliveries and inform if there are any problems with it.\n\u003c/h4\u003e\n\u003cbr\u003e\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://res.cloudinary.com/stefanosaffran/image/upload/v1585036656/fastfeet/itci3xn6yeeiq6bvvqxu.gif\" height=\"320\"\u003e\n  \u003cimg src=\"https://res.cloudinary.com/stefanosaffran/image/upload/v1584952636/fastfeet/qk966idl6gdby6ow7b40.gif\" height=\"320\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://res.cloudinary.com/stefanosaffran/image/upload/v1584949678/fastfeet/n3e0rkjgzdy7ewe5ceos.gif\" \u003e\n\u003c/p\u003e\n\n## :rocket: Built with\n\nThis project was developed with the following technologies:\n\n-   [Node.js](https://nodejs.org/)\n-   [Express](https://expressjs.com/)\n-   [ReactJS](https://reactjs.org/)\n-   [React Native](https://facebook.github.io/react-native/)\n-   [Redux](https://redux.js.org/)\n-   [Redux-Saga](https://redux-saga.js.org/)\n-   [Redux-persist](https://github.com/rt2zz/redux-persist)\n-   [Styled-components](https://www.styled-components.com/)\n-   [React Navigation](https://reactnavigation.org/)\n-   [JWT](https://jwt.io/)\n-   [Immer](https://github.com/immerjs/immer)\n-   [Axios](https://github.com/axios/axios)\n-   [React-icons](https://react-icons.netlify.com/)\n-   [React-toastify](https://github.com/fkhadra/react-toastify)\n-   [Reactotron](https://infinite.red/reactotron)\n-   [Polished](https://polished.js.org/)\n-   [Yup](https://www.npmjs.com/package/yup)\n-   [Date-fns](https://date-fns.org/)\n-   [AWS S3](https://aws.amazon.com/pt/s3/)\n-   [Multer](https://github.com/expressjs/multer)\n-   [ESLint](https://eslint.org/)\n-   [Prettier](https://prettier.io/)\n-   [VS Code](https://code.visualstudio.com/)\n\n## :information_source: Getting Started\n\n### Requirements\n\nTo run the application you will need:\n* [Git](https://git-scm.com)\n* [Node](https://nodejs.org/)\n* [Yarn](https://yarnpkg.com/) \n\nI strongly recommend using [Docker](https://www.docker.com/) to run the databases.\n\u003cbr\u003e\nIf you decide to use docker, follow this steps to install and run the docker images.\n\n```bash\n# install Redis image\ndocker run --name imageName -p 6379:6379 -d -t redis:alpine\n\n# install Postgres image (if you don't specify an username it will be postgres by default)\ndocker run --name imagename -e POSTGRES_PASSWORD=yourPassword -p 5432:5432 -d postgres\n\n# start Redis\ndocker start imageName\n\n# start Postgres\ndocker start imageName\n\n```\n### Backend\nNow clone the repository and install the dependencies.\n```bash\n# to clone the repository\ngit clone https://github.com/StefanoSaffran/fastfeet.git\n\n# go into the backend folder\ncd fastfeet/backend\n\n#install the backend dependencies\nyarn\n\n```\nIn order to connect to the database, you will need to enter the access informations into a .env file, based on a .env.example file that is provided in the backend folder, change the variables according to your environment.\n```bash\n# run migrations\nyarn sequelize db:migrate\n\n# run seeds\nyarn sequelize db:seed:all\n\n# run api\nyarn dev \u0026 yarn queue\n```\n### Frontend\n\n```bash\n# in another tab of the terminal install the frontend dependencies and run it \ncd frontend\nyarn\nyarn start\n```\nUse this credentials to access the web application\n\u003cblockquote\u003e\u003cstrong\u003eemail:\u003c/strong\u003e admin@fastfeet.com\u003c/blockquote\u003e\n\u003cblockquote\u003e \u003cstrong\u003esenha:\u003c/strong\u003e 123456\u003c/blockquote\u003e\n\n### Mobile\n\nThe Application was developed using Expo. It is a free and open source toolchain built around React Native to facilitate the process of running and testing applications. [Click here](https://expo.io/learn) to get start with Expo.\n\n```bash\n# install the dependencies\ncd mobile\nyarn\n```\n\nIn order to run the application on your device, you need to change the ip config.\n\n[api.js](https://github.com/StefanoSaffran/fastfeet/blob/master/mobile/src/services/api.js)\n```javascript\n  baseURL: 'http://192.168.0.185:3333',\n```\nreplace 192.168.0.185 with your machine's ip.\n\nIf you want to use Reactotron change the ip in the Reactotron config file.\n\n[ReactotronConfig](https://github.com/StefanoSaffran/fastfeet/blob/master/mobile/src/config/ReactotronConfig.js)\n```javascript\n  .configure({ host: '192.168.0.185' })\n```\n\nNow with everything on place, run the application.\n\n```bash\n\n# to run the app\nyarn start\n\n```\nExpo will open a page in your browser, scan the QRcode on the page and wait for the app to load.\n\n\u003e The Application was developed and tested on Iphone 6s\n\n---\n\n## :page_with_curl: License\n\nThis project is under the MIT license. See the [LICENSE](https://github.com/StefanoSaffran/fastfeet/blob/master/LICENSE) for more information\n\n\n## :mailbox_with_mail: Get in touch!\n\n\u003ca href=\"https://stefanosaffran.com\" target=\"_blank\" \u003e\n  \u003cimg alt=\"Website - Stefano Saffran\" src=\"https://img.shields.io/badge/Website--%23F8952D?style=social\"\u003e\n\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\n\u003ca href=\"https://www.linkedin.com/in/stefanosaffran/\" target=\"_blank\" \u003e\n  \u003cimg alt=\"Linkedin - Stefano Saffran\" src=\"https://img.shields.io/badge/Linkedin--%23F8952D?style=social\u0026logo=linkedin\"\u003e\n\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\n\u003ca href=\"mailto:stefanoas@gmail.com\" target=\"_blank\" \u003e\n  \u003cimg alt=\"Email - Stefano Saffran\" src=\"https://img.shields.io/badge/Email--%23F8952D?style=social\u0026logo=gmail\"\u003e\n\u003c/a\u003e \n\n---\n\nMade with :coffee: and ❤️ by Stefano Saffran.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstefanosaffran%2Ffastfeet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstefanosaffran%2Ffastfeet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstefanosaffran%2Ffastfeet/lists"}