Skip to content

📚 An application that helps teachers and students to get in touch

Notifications You must be signed in to change notification settings

CaioQuirinoMedeiros/proffy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Proffy 📚

Uma aplicação que facilita o encontro entre alunos e professores particulares


Frentes


O que é esse projeto?

Essa aplicação foi desenvolvida em uma NLW (Next Level Week) da Rocketseat, uma semana de imersão nas tecnologias JavaScript onde é desenvolvida uma aplicação de ponta a ponta (back-end, front-end e mobile). Ao final da semana foram passados desafios para incrementar a aplicação à uma versão 2.0. Esse projeto se trata da minha versão final da aplicação, tendo inclusive diferenças em relação ao que foi proposto. Me dediquei nesse projeto com o intuito de praticar meus conhecimentos na stack e acrescentar no meu portifólio.

O que é esse app e o que ele faz?

Trata-se de uma plataforma para professores particulares se cadastrarem e alunos poderem entrar em contato. Quem tiver interesse em ensinar pode cadastrar sua "aula" informando uma breve descrição, as matérias que domina, o preço da sua hora/aula, o número de contato e quais horários tem disponíveis (dia da semana e hora). Quem tiver interesse em ter aulas pode filtrar os professores pela matéria, dia da semana e horário.


Projeto em produção

Funcionalidades

  • Cadastro de usuário
  • Autenticação
  • Recuperação de senha (envio de e-mail)
  • Edição de dados do usuário, incluindo senha
  • Upload de foto de perfil do usuário
  • Cadastro e edição de aula
  • Listagem com filtro de todas as aulas cadastradas na plataforma

API (NodeJS) 📡

Em produção

Realizei o deploy da aplicação no Heroku, você pode acessar através dessa url

Documentação

Fiz a documentação no Insomnia e usei o insomnia-documenter para gerar a documentação. Ela pode ser acessada aqui

Principais bibliotecas utilizadas

  • express
  • aws-sdk
  • bcryptjs
  • celebrate
  • date-fns
  • jsonwebtoken
  • multer
  • nodemailer
  • pg
  • typeorm

Instalação, configuração e execução 🔧

  1. cd proffy-api
  2. Instale as dependencias:

  yarn install
  1. Crie o arquivo com as credenciais da aws de acordo com o arquivo exemplo awsconfig.example.json. Ou veja aqui outras formas de configurar as credenciais da aws, se preferir

  2. Configure as variáveis ambientes (recomendo criar um arquivo .env) de acordo com o arquivo .env.example

  3. Certifique-se de criar o banco no PostgreSQL de acordo com a configuração das variáveis ambiente. Ou veja aqui como configurar o TypeORM de outras formas, se preferir

  4. Rode as migrations para criar as tabelas no banco de dados:

  yarn typeorm migration:run
  1. Enfim, execute o server:
  yarn dev:server

WEB (ReactJS) 💻

Em produção

Realizei o deploy no Netlify, você pode acessar nesse link

Principais bibliotecas utilizadas

  • axios
  • react-icons
  • react-router-dom
  • react-select
  • react-spinners
  • react-spring
  • react-text-mask
  • typescript
  • yup

Instalação, configuração e execução 🔧

  1. cd proffy-web
  2. Instale as dependencias:

  yarn install
  1. Configure as variáveis ambientes (recomendo criar um arquivo .env) de acordo com o arquivo .env.example

  2. Execute o projeto:

  yarn start

APP (ReactNative) 📱

Em produção

Realizei o build do aplicativo no expo e você pode baixar o .apk neste link

Principais bibliotecas utilizadas

  • @expo/react-native-action-sheet
  • @react-native-community/async-storage
  • @react-native-community/datetimepicker
  • @react-navigation/bottom-tabs
  • @react-navigation/native
  • @react-navigation/stack
  • axios
  • date-fns
  • expo-image-picker
  • react-native-modal
  • yup

Instalação, configuração e execução 🔧

  1. cd proffy-app
  2. Instale as dependencias:

  yarn install
  1. Configure o expo, caso ainda não o tenha

  2. Altere o baseURL para a url onde o servidor está rodando (./src/services/api.ts)

  3. Execute o projeto:

  yarn android