Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/stefanosaffran/gobarber
💈✂️ GoBarber - A Barber Schedule App - | - Developed during the bootcamp GoStack by @Rocketseat
https://github.com/stefanosaffran/gobarber
appointment-scheduling barbershop context-api gobarber gostack insomnia javascript mongodb nodejs postgres react-native reactjs rocketseat theme-switcher typeorm typescript
Last synced: 3 months ago
JSON representation
💈✂️ GoBarber - A Barber Schedule App - | - Developed during the bootcamp GoStack by @Rocketseat
- Host: GitHub
- URL: https://github.com/stefanosaffran/gobarber
- Owner: StefanoSaffran
- License: mit
- Created: 2020-05-12T15:51:02.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2023-12-15T11:38:57.000Z (about 1 year ago)
- Last Synced: 2024-10-13T08:05:50.202Z (3 months ago)
- Topics: appointment-scheduling, barbershop, context-api, gobarber, gostack, insomnia, javascript, mongodb, nodejs, postgres, react-native, reactjs, rocketseat, theme-switcher, typeorm, typescript
- Language: TypeScript
- Homepage:
- Size: 2.42 MB
- Stars: 79
- Watchers: 3
- Forks: 29
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
💈✂️ GoBarber ✂️💈
Project |
Built with |
How to run |
License |
Get in touch
## :computer: Project
💈 A barber scheduling app allowing users to choose from a list of barbers and barbers to track their appointments. 💈
## :rocket: Built with
This project was developed with the following technologies:
Backend
- [Node.js](https://nodejs.org/)
- [Express](https://expressjs.com/)
- [TypeORM](https://typeorm.io/)
- [Typescript](https://www.typescriptlang.org/)
- [TS-Node-Dev](https://www.npmjs.com/package/ts-node-dev)
- [MongoDB](https://www.mongodb.com/)
- [Docker](https://www.docker.com/docker-community)
- [PostgreSQL](https://www.postgresql.org/)
- [JWT](https://jwt.io/)
- [Celebrate](https://github.com/arb/celebrate)
- [AWS S3](https://aws.amazon.com/pt/s3/)
- [Multer](https://github.com/expressjs/multer)
- [Tsyringe](https://github.com/microsoft/tsyringe)
- [uuidv4](https://www.npmjs.com/package/uuidv4)
- [Bcrypt](https://www.npmjs.com/package/bcrypt)
- [Cors](https://www.npmjs.com/package/cors)
- [Dotenv](https://www.npmjs.com/package/dotenv)
- [Handlebars](https://handlebarsjs.com/)
- [Nodemailer](https://nodemailer.com/about/)
- [ESLint](https://eslint.org/)
- [Prettier](https://prettier.io/)
- [VS Code](https://code.visualstudio.com/)Frontend
- [React](https://pt-br.reactjs.org/)
- [Typescript](https://www.typescriptlang.org/)
- [Unform](https://unform.dev/)
- [Styled Components](https://styled-components.com/)
- [Context API](https://reactjs.org/docs/context.html)
- [React-toggle](https://github.com/aaronshaf/react-toggle)
- [React-spring](https://www.react-spring.io/)
- [Polished](https://polished.js.org/)
- [Yup](https://www.npmjs.com/package/yup)
- [Date-fns](https://date-fns.org/)
- [uuidv4](https://www.npmjs.com/package/uuidv4)
- [Axios](https://www.npmjs.com/package/axios)
- [React Icons](https://react-icons.netlify.com/#/)
- [ESLint](https://eslint.org/)
- [Prettier](https://prettier.io/)
- [VS Code](https://code.visualstudio.com/)Mobile
- [React](https://pt-br.reactjs.org/)
- [React Native](https://reactnative.dev/)
- [Typescript](https://www.typescriptlang.org/)
- [Unform](https://unform.dev/)
- [Styled Components](https://styled-components.com/)
- [Context API](https://reactjs.org/docs/context.html)
- [React Navigation](https://reactnavigation.org/)
- [React Native Vector Icons](https://github.com/oblador/react-native-vector-icons)
- [Axios](https://www.npmjs.com/package/axios)
- [ESLint](https://eslint.org/)
- [Prettier](https://prettier.io/)
- [VS Code](https://code.visualstudio.com/)## :information_source: How to run
### Requirements
To run the application you will need:
* [Git](https://git-scm.com)
* [Node](https://nodejs.org/)
* [Yarn](https://yarnpkg.com/)I strongly recommend using [Docker](https://www.docker.com/) to run the databases.
If you decide to use docker, follow this steps to install and run the docker image.```bash
# install Postgres image (if you don't specify an username it will be postgres by default)
$ docker run --name postgresimagename -e POSTGRES_PASSWORD=yourPassword -p 5432:5432 -d postgres# install Mongo image
$ docker run --name mongoimagename -p 27017:27017 -d -t mongo# install Redis image
docker run --name redisimageName -p 6379:6379 -d -t redis:alpine# start Postgres
$ docker start postgresimagename# start Mongo
docker start mongoimagename# start Redis
docker start redisimageName```
### Backend
Now clone the repository and install the dependencies.
```bash
# to clone the repository
$ git clone https://github.com/StefanoSaffran/gobarber.git# go into the backend folder
$ cd gobarber/backend#install the backend dependencies
$ yarn```
In order to connect to the database, you will need to enter the access informations into a ormconfig.json. You can find more about it [here](https://typeorm.io/#/using-ormconfig).Also, you have to configure the enviroments variables in the .env file, based on a .env.example file that is provided in the backend folder, change the variables according to your environment.
```bash
# run migrations
$ yarn typeorm migration:run# run api
$ yarn dev:server
```### Frontend
```bash
# in another tab of the terminal install the frontend dependencies and run it
$ cd frontend
$ yarn
$ yarn start
```### Mobile
for mobile you need the Android emulator with the SDK installed or IOS emulator and the react-native cli.
The project was developed and tested on Android emulator```bash
# install dependencies and run the mobile
$ cd mobile
$ yarn# first open the emulator and start the react native server
$ yarn start# in another tab install and run the app
$ yarn android```
## :memo: License
This project is under the MIT license. See the [LICENSE](https://github.com/StefanoSaffran/gobarber/blob/master/LICENSE) for more information
## :mailbox_with_mail: Get in touch!
---
Made with :coffee: and ❤️ by Stefano Saffran.