{"id":23015627,"url":"https://github.com/rodrigo-dev7/nlw02-proffy","last_synced_at":"2026-04-14T14:32:20.649Z","repository":{"id":122427187,"uuid":"287541932","full_name":"Rodrigo-dev7/nlw02-proffy","owner":"Rodrigo-dev7","description":"Plataforma de estudo online criado na Next Level Week#2","archived":false,"fork":false,"pushed_at":"2020-08-14T14:25:26.000Z","size":786,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-02T17:51:48.613Z","etag":null,"topics":["knexjs","mobile","nodejs","proffy","react-native","reactjs","server","sqlite3-database","typescript","website"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Rodrigo-dev7.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-08-14T13:41:06.000Z","updated_at":"2020-08-14T20:44:38.000Z","dependencies_parsed_at":null,"dependency_job_id":"778ccc0c-aa08-409b-b312-8a22cfc6f8f5","html_url":"https://github.com/Rodrigo-dev7/nlw02-proffy","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Rodrigo-dev7/nlw02-proffy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rodrigo-dev7%2Fnlw02-proffy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rodrigo-dev7%2Fnlw02-proffy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rodrigo-dev7%2Fnlw02-proffy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rodrigo-dev7%2Fnlw02-proffy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Rodrigo-dev7","download_url":"https://codeload.github.com/Rodrigo-dev7/nlw02-proffy/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rodrigo-dev7%2Fnlw02-proffy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31801308,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-14T11:13:53.975Z","status":"ssl_error","status_checked_at":"2026-04-14T11:13:53.299Z","response_time":153,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["knexjs","mobile","nodejs","proffy","react-native","reactjs","server","sqlite3-database","typescript","website"],"created_at":"2024-12-15T11:12:46.303Z","updated_at":"2026-04-14T14:32:20.631Z","avatar_url":"https://github.com/Rodrigo-dev7.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Proffy\n\u003e  **Proffy é uma plataforma online para conectar alunos com professores para ter aulas online.**\n\n\n\n![landing](https://user-images.githubusercontent.com/60434681/90255992-6c427780-de1b-11ea-9f7d-eb019fb62939.png)\n\n\n\n## Tecnologias Utilizadas\n\u003e- [TypeScript](https://www.typescriptlang.org/] (https://www.typescriptlang.org/))  \n\u003e- [Visual Studio Code](https://code.visualstudio.com/](https://code.visualstudio.com/))\n\u003e- [NodeJS](https://nodejs.org/en/](https://nodejs.org/en/))\n\u003e- [ReactJS](https://pt-br.reactjs.org/](https://pt-br.reactjs.org/))\n\u003e- [React Native](https://reactnative.dev/](https://reactnative.dev/))\n\n\n\n## Front-end com React js \u003cimg src=\"https://img.icons8.com/color/144/000000/react-native.png\"/\u003e\n\n\n\u003e **React** é uma biblioteca de construção de interface que visa a construção de SPA para melhorara a **experiencia do usuário final.**\n\n##### Single Page Applications (SPA)\n- são aplicações cuja funcionalidade está concentrada em uma única página. Ao invés de recarregar toda a página ou redirecionar o usuário para uma página nova, apenas o conteúdo principal é atualizado de forma assíncrona, mantendo toda a estrutura da página estática.\n\n- [x] Explicando Conceitos\n\t- [x] JSX   \n\t\u003e (HTML dentro do JavaScript)\n\t- [x] Componentes\n\t\t\u003e- são formas de a gente isolar pequenos trechos de códigos a fim de torná-los repetitivos dentro da aplicação.\n\t\t\n\t- [x] Propriedades\n\t\t\u003e-\tSão atributos repassados de um componente pai para o filho.\n\t\t\t\n\t- [x] Estado\n\t\t \u003e- Trata-se de uma informação a ser mantida pelo componente. Toda vez que o estado é alterado, o componente faz a renderização novamente exibindo as novas informações em tela.\n\t\t\t\n\n### Criando Projeto \u003cimg src=\"https://img.icons8.com/emoji/48/000000/rocket-emji.png\"/\u003e\n````\n\n$ yarn create reacct-app (project-name) --template typescript\n\n$ npx create-react-app (project-name) --template typescript\n\n````\n\n\n![gif-proffy](https://user-images.githubusercontent.com/60434681/90255952-6187e280-de1b-11ea-9713-bc9d725bbdd8.gif)\n\n\n## Back-end com Nodejs \u003cimg src=\"https://img.icons8.com/color/144/000000/nodejs.png\"/\u003e\n\nO back-end é responsável por cálculos, lógica de negócio, interações de database e performance. Ele conversa e dá suporte para os serviços de front-end.\n\n- ### Particularidade da API REST\n    Retorna apenas o dados da lista de Usuários do Back-end\n\n\n### Criando Projeto \u003cimg src=\"https://img.icons8.com/fluent/48/000000/server.png\"/\u003e\n\n```\n# yarn init -y || npm init -y \n\n# instalar typescript: yarn add typescript -D\n\n# Criar o arquivo de configuração do TS: yarn tsc --init || npx tsc --init\n```\n\n- [x] Configuração do ambiente \n```\n# instalar a lib ts-node-dev: yarn add ts-node-dev -D\n\n## No arquivo Package.json iremos criar um scripts chamado start adicionar os seguites comandos\n \"scripts\": {\n  \"start\": \"tsnd --transpile-only --ignore-watch node_modules --respawn src/server.ts\", \n  }\n```\n- **flag transpile-only:**  não irá verificar se tem erros no código, isso vai acelerar o processo de execução da não aplicação.\n\n- **ignore-watch node_modules:** para não tentar realizar conversões de código de TS/JS dentro da pasta node_modules.\n\n- **respawn:** toda vez que tivemos uma alteração no código a aplicação restart automaticamente.\n\n- [x] Explicando Conceitos\n\t- [x] Rotas e Recursos \n\t\t\u003e - **Rotas:** Endereço completo da requisição\n\t\t\u003e - **Recursos:** Qual entidade estamos acessando no sistema\n\t- [x] Métodos HTTP\n\t\t\u003e -  **GET:**  Buscar ou listar uma informação\n\t\t\u003e - **POST:**  Criar alguma nova informação \n\t\t\u003e - **PUT:** Atualizar uma informação existente \n\t\t\u003e- **DELETE:** Deletar uma informação existente\n\t\t\n\t- [x] Parâmetros\n\t\t\u003e - **Corpo (Request Body):** Dados para criação ou atualização de um registro. \n\t\t\u003e- **Route Params:** Identificar qual recurso eu quero atualizar ou deleta. \n\t\t\u003e - **Query Params:** Paginação, filtros, ordenação.\n\n- [x] Identificando os casos de uso\n\t- [x] Aulas \n\t\t \u003e- Rota para criar uma aula; \n\t\t \u003e- Rota para listar aulas; \n\t\t \u003e- Filtrar por matéria, dia da semana e horário; \n\t- [x] Conexões \n\t\t \u003e- Rota para listar o total de conexões realizadas; \n\t\t \u003e- Rota para criar uma nova conexão;\n\n ###  Configurando Conexão com o banco de dados. \u003cimg src=\"https://img.icons8.com/fluent/48/000000/data-configuration.png\"/\u003e\n\t \n- [x] BANCO SQLITE3 \n\t \u003e- npm install sqlite3\n- [x] Query Builder KNEXJS \n\t\u003e-  npm install knex --save\n- [x] Knex Documentação\n         [Documentação Knex.js](http://knexjs.org) \n\n\n\n \n  #### Criar as Migrations: \n  \u003e No arquivo **package.json** nos scripts adicione esse comando\n  \n \u003e- \"knex:migrate\": \"knex --knexfile knexfile.ts migrate:latest\", \n\t \n\u003e-\t Obs: Caso seu banco de dados  apresente algum erro é recomendado deleta o banco corrija o erro e execute o comando knex:migrate novamente. \n\n\n\n# Mobile com React Native \u003cimg src=\"https://img.icons8.com/nolan/128/react-native.png\"/\u003e\n\n## Expo \u003cimg src=\"https://img.icons8.com/dusk/64/000000/developer-mode.png\"/\u003e\n\n[Introduction to Expo](https://docs.expo.io/)\n\n-   Com as ferramentas, serviços e React da Expo, você pode criar, implantar e iterar rapidamente em aplicativos nativos do Android, iOS e da web a partir da mesma base de código JavaScript.\n\n- [x] Instalar Expo\n\n\u003e  Instalar o expo de formar global na sua maquina.\n\u003e-  **npm install expo-cli**\n\n- [x]  Criar projeto com Expo\n    \n \u003e-  **expo init  (project name)**\n \u003e \n \u003e *Execute projeto*\n \u003e- ``yarn start`` ou ``expo start``  \n    \n-  [x] Diferenças de React Native para ReactJS\n\t- [x] Elementos\n\t\n\t\n\t![rn1](https://user-images.githubusercontent.com/60434681/90257568-b9bfe400-de1d-11ea-9c9d-3fec321f837a.png)\n\t\n\n\n- [x] Estilização\n\n\n\n![rn2](https://user-images.githubusercontent.com/60434681/90257574-bb89a780-de1d-11ea-906a-83a62ab59b5e.png)\n\n\n\n## Aplicação Mobile\n\n![mobile-proffy-gif](https://user-images.githubusercontent.com/60434681/90259608-afebb000-de20-11ea-94af-b9682369a116.gif)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frodrigo-dev7%2Fnlw02-proffy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frodrigo-dev7%2Fnlw02-proffy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frodrigo-dev7%2Fnlw02-proffy/lists"}