Projeto cujo objetivo é facilitar a integração entre professores e estudantes.
Projeto desenvolvido no evento Next Level Week 2.0 fornecido pela empresa RocketSeat e extendindo com novas funcionalidades.
Nesse projeto, foi desenvolvida uma aplicação full stack integrando backend (com NodeJS), frontend (com ReactJS) e mobile (com React-Native).
A linguagem de programação utilizada foi o Typescript
.
Para o backend, foram utilizadas ferramentas como express
, knex
, SQLite3
, cors
, multer
, nodemailer
, jsonwebtoken
, bcryptjs
, uuidv4
e celebrate
.
No backend, houve aplicação de TDD em testes unitários com jest
.
Foram feitas as seguintes funcionalidades:
- Models;
- Controllers;
- Conexão com banco de dados;
- Criação das rotas;
- Validação de dados;
- Suporte para upload de imagens;
- Envio de email (para resetar senha de usuário);
- Criptografia;
- Token (JWT);
- Paginação.
Para o frontend, foram utilizadas ferramentas como axios
, react-icons
react-router-dom
, react-dropzone
, intl
e yup
.
No desenvolvimento do frontend, foi utilizada a metodologia mobile-first
.
Possui oito telas:
- Tela de login;
- Tela inicial;
- Tela de cadastro;
- Tela de 'forget password';
- Tela de listagem de Proffys;
- Tela de cadastro de aula;
- Tela de perfil;
- Telas de sucesso.
Para o mobile, foram utilizadas ferramentas como axios
, expo-image-picker
, expo-mail-composer
, intl
e yup
.
Foi utilizando o React-Native com o Expo
para a criação da aplicação mobile.
Além do Splash Screen, possui oito telas:
- Tela de login;
- Tela inicial;
- Tela de cadastro;
- Tela de 'forget password';
- Tela de listagem de Proffys;
- Tela de cadastro de aula;
- Tela de perfil;
- Telas de sucesso.
As seguintes issues estão pendentes no projeto:
- Encontrar redundâncias no código e refatorar (mas sempre pode haver!);
- Detalhes no layout web;
- Detalhes no layout mobile;
- Terminar responsividade web (mas sempre pode melhorar né haha).
Para instalar, é necessário que tenha o Node
e o Git
instalados na sua máquina. Após a configuração, pode-se rodar o seguinte comando no terminal git bash
:
git clone https://github.com/leonarita/Proffy
Após isso, você terá o repositório em sua máquina. Agora é necessário instalar o react-native-expo:
npm install -g expo-cli
Agora basta instalar as dependências do projeto com o seguinte comando nas pastas server
, web
e mobile
:
npm install
[ou]
yarn
O ultimo passo é criar a database do sqlite na pasta server com o seguinte comando:
npm knex:migrate
[ou]
yarn knex:migrate
Caso queira excluir a database, rode o seguinte comando na pasta server:
npm knex:migrate:rollback
[ou]
yarn knex:migrate:rollback
Para rodar teste com o jest
na pasta server, siga esse comando:
npm test
[ou]
yarn test
Por último, para que você consiga usufruir do projeto, deve alterar o IP gerado pelo expo no meu computador para o IP que o expo da sua máquina gerar. Deve-se também alterar as configurações de envio de email fazendo sua própria conta gratuíta no mailtrap.io
.
Agora rode a aplicação nas pastas server, web e/ou mobile e use-a com sabedoria (lembrando de que as aplicações web e mobile dependem do server para funcionar totalmente):
npm start
[ou]
yarn start
- Faça o fork do projeto (https://github.com/leonarita/Proffy/fork);
- Crie uma branch para sua modificação (git checkout -b feature/fooBar);
- Faça o commit (git commit -am 'Add some fooBar');
- Push (git push origin feature/fooBar);
- Crie um novo Pull Request.
Leonardo Narita
- Email: leo_narita@hotmail.com
- Instagram: @leo_narita