Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
87f8978
feat: primeiro commit cria projeto
miladr100 Apr 23, 2021
9c6a09f
feat(front-web/server): cria projeto angular e json-server
miladr100 Apr 23, 2021
f3951a6
feat(front-web): cria components e fluxo de login
miladr100 Apr 23, 2021
7d308aa
feat(front-web): cria component header
miladr100 Apr 23, 2021
b8712bf
feat(front-web): cria component footer
miladr100 Apr 23, 2021
fbf9703
feat(front-web): cria component nav-menu
miladr100 Apr 23, 2021
0fe0c86
feat(front-web): cria view home
miladr100 Apr 23, 2021
08265eb
feat(front-web): atualiza modulos e estrutura principal de renderizacao
miladr100 Apr 23, 2021
d60be25
feat(front-web): adiciona diretiva para cores primarias
miladr100 Apr 23, 2021
2196950
feat(front-web): cria componentes course-card e course-create
miladr100 Apr 23, 2021
8e77211
feat(front-web): cria model para course e atualiza rotas e modulos
miladr100 Apr 23, 2021
de4ca2c
feat(front-web): cria view courses
miladr100 Apr 23, 2021
74005dd
feat(front-web): cria funcoes de delecao, edicao e dialog
miladr100 Apr 24, 2021
bfae962
feat(front-web): melhora responsividade, retira helpers e cores de me…
miladr100 Apr 24, 2021
f5f560e
feat(front-web): adapta para mobile
miladr100 Apr 24, 2021
d302d51
feat(front-web): desacopla projeto de yarn workspace
miladr100 Apr 24, 2021
72a3055
feat(server): cria servidor express SQLite
miladr100 Apr 24, 2021
c0036b6
feat(json-server): move json-server
miladr100 Apr 24, 2021
5eebe0a
feat(front-web): integra area de login com servidor
miladr100 Apr 24, 2021
e73ce06
fix(server): adiciona campos de start_at e end_at
miladr100 Apr 24, 2021
fc85281
feat(server): integra get e post de cursos
miladr100 Apr 24, 2021
968a7a6
feat(front-web): adiciona imagem a tela de login
miladr100 Apr 24, 2021
31fdbd9
feat(server): cria metodos put e delete
miladr100 Apr 25, 2021
a9faba7
feat(front-web): integra put e delete de cursos e post de usuarios
miladr100 Apr 25, 2021
6a0529f
fix(front-web): adiciona correcoes a edicao de cursos
miladr100 Apr 25, 2021
bf73ed8
feat(front-web/server): atualizacoes e cria README
miladr100 Apr 25, 2021
a550d1a
fix(server): corrige arquivo de configuracoes do orm
miladr100 Apr 25, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
node_modules
dist
yarn-error.log
database.sqlite
.env
.idea
21 changes: 0 additions & 21 deletions LICENSE

This file was deleted.

75 changes: 46 additions & 29 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,29 +1,46 @@
# Desafio Celso Lisboa para FullStack

### Cenário

**Como** Coordenador Acadêmico de uma Instituição de Ensino
**Eu preciso** realizar a gestão dos cursos oferecidos pela Instituição, com seus respectivos professores, salas e horários
**Para** que o setor de Marketing possa vender os cursos online.

### Segue instruções para realizar o desafio

1. Faça um fork deste repositório.
2. Baseado no cenário acima, modele e crie o esquema do banco de dados para armazenar as informações normalizadas.
* Comite a imagem em jpg ou png do DER e o script do DDL.
3. Desenvolva uma API REST para realizar as operações necessárias com o banco de dados criado.
4. Baseado nas imagens `wireframe/1-login-mobile.png` e `wireframe/2-login-desktop.png`, crie a tela de login da aplicação.
* Considere apenas uma validação simples por e-mail e senha.
* Não existe a necessidade de CRUD de usuário, recuperação de senha ou outra operação mais complexa.
5. Baseado nas imagens `wireframe/3-cursos-mobile.png` e `wireframe/4-cursos-desktop.png`, crie a tela de visualização e deleção de cursos.
* Deve conter as informações de horário, professor e sala.
6. Baseado nas imagens `wireframe/5-detalhe-mobile.png` e `wireframe/6-detalhe-desktop.png`, crie a tela de criação e alteração de cursos.
* Os campos de professor e sala deverão ser um multi-select.
* Não existe a necessidade de CRUD de professor e sala.
7. Realizar um Pull Request para este repositório, com instruções necessárias para instalação e instânciação dos sistemas.

### O que será avaliado

1. Fidelidade às instruções e ao cenário.
2. Clean Code e boas práticas.
3. Boas práticas de versionamento.
# Desafio APP Liga Edu

- **Autor** Milad Roghanian
- **Data de Conclusão (v final)** 25/04/2021
- [Link de Acesso ao Projeto no GitHub] (https://github.com/miladr100/desafio-fullstack)
- [Link de Acesso ao App Executando (Somente Front)] (https://appligaedu.vercel.app/)

### Usabilidade

- Sistema desenvolvido para realizar CRUD de Cursos para cada usuário cadastrados
- Basta criar um usuário no sistema e acessar a área de cursos do sistema.

## Projeto Front Angular

### Segue instruções para rodar o projeto Angular

#### Também disponível em https://appligaedu.vercel.app

1. Clone este repositório em sua máquina
2. Para os próximos passos é necessário ter em sua máquina o angular cli, veja https://angular.io/cli
3. Basta entrar na pasta onde está o projeto front-web, em packages/front-web
4. Primeiramente para instalar as dependências necessárias:
- Se estiver usando yarn (usado durante a criacação do projeto), basta executar: yarn install
- Se estiver usando npm, basta executar: npm install
5. Para executar o projeto em uma porta local (padrão 4200):
- Se estiver usando yarn, basta executar: yarn start
- Se estiver usando npm, basta executar: npm start
6. Verifique o endereço da API modificando a variável API_URL na pasta src/environments/environments.ts

### Segue instruções para rodar o servidor SQLite e a API Express

1. Clone este repositório em sua máquina
2. Basta entrar na pasta onde está o projeto server, em packages/server
3. Primeiramente para instalar as dependências necessárias:
- Se estiver usando yarn (usado durante a criacação do projeto), basta executar: yarn install
- Se estiver usando npm, basta executar: npm install
4. Deve-se rodar as migrations para gerar as tabelas e o banco SQlite:
- Se estiver usando yarn: yarn typeorm migration:run
- Se estiver usando npm: npm typeorm migration:run
5. Para executar o servidor em uma porta local (padrão 3001):
- Se estiver usando yarn, basta executar: yarn server
- Se estiver usando npm, basta executar: npm server

#### Dúvidas (miladr100@gmail.com)

👊 Obrigado!
8 changes: 8 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"name": "ligaedu",
"version": "1.0.0",
"repository": "https://github.com/miladr100/desafio-fullstack",
"author": "Milad Roghanian <miladr100@gmail.com>",
"private": true,
"license": "MIT"
}
17 changes: 17 additions & 0 deletions packages/front-web/.browserslistrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.
# For additional information regarding the format and rule options, please see:
# https://github.com/browserslist/browserslist#queries

# For the full list of supported browsers by the Angular framework, please see:
# https://angular.io/guide/browser-support

# You can see what browsers were selected by your queries by running:
# npx browserslist

last 1 Chrome version
last 1 Firefox version
last 2 Edge major versions
last 2 Safari major versions
last 2 iOS major versions
Firefox ESR
not IE 11 # Angular supports IE 11 only as an opt-in. To opt-in, remove the 'not' prefix on this line.
3 changes: 3 additions & 0 deletions packages/front-web/.dev.notes.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
para gerar um component: ng g c path/nome-do-componente
para gerar um service: ng g s path/nome-do-service
para gerar um directive: ng g d path/nome-da-diretiva
46 changes: 46 additions & 0 deletions packages/front-web/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# See http://help.github.com/ignore-files/ for more about ignoring files.

# compiled output
/dist
/tmp
/out-tsc
# Only exists if Bazel was run
/bazel-out

# dependencies
/node_modules

# profiling files
chrome-profiler-events*.json
speed-measure-plugin*.json

# IDEs and editors
/.idea
.project
.classpath
.c9/
*.launch
.settings/
*.sublime-workspace

# IDE - VSCode
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
.history/*

# misc
/.sass-cache
/connect.lock
/coverage
/libpeerconnection.log
npm-debug.log
yarn-error.log
testem.log
/typings

# System Files
.DS_Store
Thumbs.db
27 changes: 27 additions & 0 deletions packages/front-web/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# FrontWeb

This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 11.2.10.

## Development server

Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files.

## Code scaffolding

Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`.

## Build

Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `--prod` flag for a production build.

## Running unit tests

Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io).

## Running end-to-end tests

Run `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/).

## Further help

To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
114 changes: 114 additions & 0 deletions packages/front-web/angular.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"cli": {
"analytics": false
},
"version": 1,
"newProjectRoot": "projects",
"projects": {
"front-web": {
"projectType": "application",
"schematics": {
"@schematics/angular:component": {
"inlineTemplate": false,
"inlineStyle": false,
"style": "scss",
"skipTests": true
},
"@schematics/angular:class": {
"skipTests": true
},
"@schematics/angular:directive": {
"skipTests": true
},
"@schematics/angular:guard": {
"skipTests": true
},
"@schematics/angular:interceptor": {
"skipTests": true
},
"@schematics/angular:module": {
"skipTests": true
},
"@schematics/angular:pipe": {
"skipTests": true
},
"@schematics/angular:service": {
"skipTests": true
}
},
"root": "",
"sourceRoot": "src",
"prefix": "app",
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"outputPath": "dist/front-web",
"index": "src/index.html",
"main": "src/main.ts",
"polyfills": "src/polyfills.ts",
"tsConfig": "tsconfig.app.json",
"aot": true,
"assets": [
"src/favicon.ico",
"src/assets"
],
"styles": [
"./node_modules/@angular/material/prebuilt-themes/deeppurple-amber.css",
"src/styles.scss"
],
"scripts": []
},
"configurations": {
"production": {
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.prod.ts"
}
],
"optimization": true,
"outputHashing": "all",
"sourceMap": false,
"namedChunks": false,
"extractLicenses": true,
"vendorChunk": false,
"buildOptimizer": true,
"budgets": [
{
"type": "initial",
"maximumWarning": "2mb",
"maximumError": "5mb"
},
{
"type": "anyComponentStyle",
"maximumWarning": "6kb",
"maximumError": "10kb"
}
]
}
}
},
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"browserTarget": "front-web:build"
},
"configurations": {
"production": {
"browserTarget": "front-web:build:production"
}
}
},
"extract-i18n": {
"builder": "@angular-devkit/build-angular:extract-i18n",
"options": {
"browserTarget": "front-web:build"
}
}
}
}
},
"defaultProject": "front-web"
}
32 changes: 32 additions & 0 deletions packages/front-web/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
{
"name": "ligaedu-web",
"version": "1.0.0",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build"
},
"private": true,
"dependencies": {
"@angular/animations": "~11.2.11",
"@angular/cdk": "~11.2.10",
"@angular/common": "~11.2.11",
"@angular/compiler": "~11.2.11",
"@angular/core": "~11.2.11",
"@angular/forms": "~11.2.11",
"@angular/material": "~11.2.10",
"@angular/platform-browser": "~11.2.11",
"@angular/platform-browser-dynamic": "~11.2.11",
"@angular/router": "~11.2.11",
"rxjs": "~6.6.0",
"tslib": "^2.0.0",
"zone.js": "~0.11.3"
},
"devDependencies": {
"@angular-devkit/build-angular": "~0.1102.10",
"@angular/cli": "~11.2.10",
"@angular/compiler-cli": "~11.2.11",
"@types/node": "^12.11.1",
"typescript": "~4.1.5"
}
}
Loading