Project made in Rockeatseat bootcamp. This project has a back-end, front-end and mobile applications for gyms and their students. It has a wide range of features, like admin login, plans, students enrollments, students help orders, etc.
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
The front-end app is used by gym owners, allowing to register, list, edit and delete students, plans, enrollments and answer the students help orders.
While the mobile app is used by the gym' students, allowing them to make chick-in in the gym with a maximum 5 check-ins during 5 consecutive days and send help orders to the gym's owners. Moreover, the student can list the past check-ins and help orders with their current status.
- NodeJS - Environment runtime.
- Yarn - Packager manager.
- Docker - Make it easier to create, deploy, and run applications by using containers.
- PostgreSQL - A docker image for PostgreSQL database.
- MongoDB - A docker image for MongoDB database.
- Redis - A docker image for Redis database.
After accomplish all the prerequisites, clone the repository in your machine.
$> git clone https://github.com/jopcmelo/gostack-gympoint.git
A step by step instructions to get the application running in development environment.
The application needs the PostgreSQL, MongoDB and Redis running in your local machine, to download the docker images for these DB run the 3 following instructions.
$> $ docker run --name mongo_gympoint -p 27017:27017 -d -t mongo
This instruction download a mongoDB image, configuring the container to use the port 27017 and gives him the name "mongo_gympoint".
$ docker run --name redis_gympoint -p 6379:6379 -d -t redis:alpine
This instruction download a redis image, configuring the container to use the port 6379 and gives him the name "redis_gympoint".
$ docker run --name db_gympoint -e POSTGRES_PASSWORD=docker -p 5432:5432 -d postgres
This instruction download a postgreSQL image, configuring the container to use the port 5432 and gives him the name "mongo_gympoint" with password docker.
The back-end has some dependencies that need to be installed through Yarn.
$> cd ./backend/ && yarn
To get the back-end running, execute:
$> yarn dev
The back-end has a e-mail develivery when the student's question is answered or new enrollment is made. The mailtrap is used to check the sent emails in development enrionment. To see the mailtrap emails, update the MAIL_USER and MAIL_PASS variable in .env file of the backend folder with your credentials.
The front-end has some dependencies that need to be installed through Yarn.
$> cd ./frontend/ && yarn
To get the front-end running, execute:
$> yarn start
Then open your browser in localhost:3000 and use the default admin login and password.
# Credentials
user: [email protected]
password: 123456
The mobile version has been tested in Android environment, iOS environment may suffer instability and malfunction.
The mobile application needs an android virtual or physical device available in the local machine.
First, you need to update the variable LOCALHOST_IP in .env file in mobile folder with the IP of your machine.
To run the mobile app, execute:
$> cd ./mobile && react-native start --reset-cache
After the graph dependencie be loaded, run the following command in a separeted terminal.
$> cd ./mobile && reacct-native run-android
After that, the app will be available in your android device. To login in the mobile app, just enter with some student ID.
- Express - A restful API framework
- ReactJS - A front-end library to build user interfaces
- React Native - A mobile library to build native apps to Android and iOS
- Leonardo Rosa Rodrigues - Full-stack developer - GitHub profile
This project is licensed under the MIT License - see the LICENSE file for details
- Axios
- ExpressJS
- Sequelize ORM
- Mongoose
- Background mail sendling with Redis
- Mail Trap
- Multer
- JWT
- Docker
- React / React Hooks / ReactJS / React Native
- Reactotron
- React Navigation / React Router DOM
- React Toastify
- Redux / Redux Saga / Redux Persist
- Flux Archtecture
- ESLint
- Prettier
- Styled Components
- Rocketseat/Unform
- .env
- Etc