Project provided by Rocket Seat to learn backend, frontend and mobile development employing React JS, React Native and Express.
This project aims to create a web application and mobile web app to connect teachers (Proffys) to students.
The web application is intended for the use of Proffys and students, where is possible to:
- Register yourself as a Proffy with name, avatar, whatsapp number, biography, subject, class cost and available times.
- It is also possible to search for available Proffys filtering by subject, week day and time.
- Found a Proffy, you can get in touch by whatsapp.
The mobile web app is indended for users that want to find Proffys, where is possible to:
- A student can search for available Proffys filtering by subject, week day and time.
- You can save a Proffy locally as favorite.
- You can visualize your list of favorites.
- Found a Proffy, you can get in touch by whatsapp.
Open your terminal in the folder you want to clone the project
# Clone this repo
git clone https://github.com/LorranSutter/Proffy.git
# Go to the project
cd Proffy
# Go to each folder and install dependencies
cd backend
yarn
cd ../frontend
yarn
cd ../mobile
yarn
Now you will need two opened terminals to run the project. One for the backend and another one for the frontend or mobile.
Backend will run on http://localhost:5000/
Frontend will run on http://localhost:3000/
Mobile will run on http://localhost:19000/
# Go to backend
cd backend
# Run the project
yarn start
## In the another terminal ##
# Go to frontend
cd frontend
# Run the project
yarn start
For the mobile web app keep backend running and do the following:
# Go to mobile
cd mobile
# Run the project
expo start
This will start expo CLI on your browser. A QR code will appear on your screen and in terminal. You can scan this QR code with Expo app to see the application running in your phone.
-
Backend
- Typescript - superset of JS programming language static typed
- TS node dev - monitor and restart server after changes
- Node.js - executes JS scripts in server side
- Express.js - web application framework
- Knex - query builder
- Sqlite - simple SQL database engine
- Cors - provides a middleware that can be used to enable Cross-origin resource sharing
-
Frontend
- ReactJS - frontend library
- React router dom - routing and navigation for react apps
- Axios - HTTP requests
-
Mobile
- React Native - framework for mobile development
- Expo - tool for helping mobile development with react native
- React Native Maps - map component for iOS and Android
- React Navigation - routing and navigation for react native apps
- Expo Async Storage - local key-value storage API