Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
167 commits
Select commit Hold shift + click to select a range
a936ee9
chore: add npm
Jonatasjes Jul 15, 2021
b070e90
chore: add commit linter
Jonatasjes Jul 15, 2021
0d0c2ec
chore: add typescript
Jonatasjes Jul 15, 2021
ff6f150
chore: add editorconfig
Jonatasjes Jul 15, 2021
de56370
chore: add eslint
Jonatasjes Jul 15, 2021
0d33e53
chore: add prettier
Jonatasjes Jul 15, 2021
ebaeebf
chore: add jest
Jonatasjes Jul 15, 2021
342f2fe
feat: ensure AddPropertyController returns 400 if no Publication date…
Jonatasjes Jul 15, 2021
ab077d0
test: ensure AddPropertyController returns 400 if no Publication date…
Jonatasjes Jul 15, 2021
21cf1cb
feat: ensure AddPropertyController return an error if no publicatio d…
Jonatasjes Jul 15, 2021
e9f3477
test: ensure AddPropertyController return an error if no publicatio d…
Jonatasjes Jul 15, 2021
fab8fb9
feat: ensure AddPropertyController returns 400 if no title is provider
Jonatasjes Jul 15, 2021
cdba747
test: ensure AddPropertyController returns 400 if no title is provider
Jonatasjes Jul 15, 2021
b958f8d
refactor: ensure AddPropertyController.handle implement correct inter…
Jonatasjes Jul 15, 2021
2bec35e
refactor: add customized error for missing param
Jonatasjes Jul 15, 2021
14b94e3
refactor: move duplicated code to a helper method
Jonatasjes Jul 15, 2021
ae1aca5
refactor: simplify code
Jonatasjes Jul 15, 2021
870b37d
test: ensure AddPropertyController returns 400 if no description is p…
Jonatasjes Jul 15, 2021
f01d36b
test: ensure AddPropertyController returns 400 if no value is provider
Jonatasjes Jul 15, 2021
617c3a3
test: ensure AddPropertyController returns 400 if no area is provider
Jonatasjes Jul 15, 2021
46edbf1
test: ensure AddPropertyController returns 400 if no address is provider
Jonatasjes Jul 15, 2021
78ef8df
test: ensure AddPropertyController returns 400 if no public_place is …
Jonatasjes Jul 15, 2021
cd914a6
test: ensure AddPropertyController returns 400 if no number is provider
Jonatasjes Jul 15, 2021
b5f0748
test: ensure AddPropertyController returns 400 if no adjunct is provider
Jonatasjes Jul 15, 2021
02439ae
test: ensure AddPropertyController returns 400 if no neighborhood is …
Jonatasjes Jul 15, 2021
05af58f
test: ensure AddPropertyController returns 400 if no zip code is prov…
Jonatasjes Jul 15, 2021
fb8fd68
test: ensure AddPropertyController returns 400 if no city is provider
Jonatasjes Jul 15, 2021
4d0de40
test: ensure AddPropertyController returns 400 if no state is provider
Jonatasjes Jul 15, 2021
b618d4b
refactor: make AddPropertyController conforms to a protocol
Jonatasjes Jul 15, 2021
11fbf95
refactor: move AddPropertyController to a folder
Jonatasjes Jul 15, 2021
401b205
refactor: change add-property to add-property-controller
Jonatasjes Jul 16, 2021
b07d07e
refactor: add Validation with correct values to AddPropertyController
Jonatasjes Jul 16, 2021
7c50f63
test: add Validation with correct values to AddPropertyController
Jonatasjes Jul 16, 2021
35aeacb
refactor: move sut creation to a factory method
Jonatasjes Jul 16, 2021
47ce68c
feat: ensure AddPropertyController returns a badRequest error if vali…
Jonatasjes Jul 16, 2021
b0d7901
test: ensure AddPropertyController returns a badRequest error if vali…
Jonatasjes Jul 16, 2021
d8b5cb3
feat: ensure AddPropertyController calls AddPropertyUseCase with corr…
Jonatasjes Jul 16, 2021
b107ef3
test: ensure AddPropertyController calls AddPropertyUseCase with corr…
Jonatasjes Jul 16, 2021
968c993
feat: ensure AddPropertyController returns 500 if AddPropertyUseCase …
Jonatasjes Jul 16, 2021
138a63a
test: ensure AddPropertyController returns 500 if AddPropertyUseCase …
Jonatasjes Jul 16, 2021
2d5743c
feat: ensure AddPropertyController returns 204 on success
Jonatasjes Jul 16, 2021
be58696
test: ensure AddPropertyController returns 204 on success
Jonatasjes Jul 16, 2021
07886e1
feat: ensure DbAddProperty calls AddPropertyRepository with correct v…
Jonatasjes Jul 16, 2021
a428392
test: ensure DbAddProperty calls AddPropertyRepository with correct v…
Jonatasjes Jul 16, 2021
46f4d18
refactor: move sut creation to a factory method
Jonatasjes Jul 16, 2021
cce54c0
test: ensure DbAddProperty throws if AddPropertyRepository throws
Jonatasjes Jul 16, 2021
e796f76
chore: add jest configs for mongodb
Jonatasjes Jul 16, 2021
dd4eb9f
feat: create a mongodb helper
Jonatasjes Jul 16, 2021
62fafc6
feat: ensure PropertyMongoRepository add a new property on add success
Jonatasjes Jul 16, 2021
1704a8e
test: ensure PropertyMongoRepository add a new property on add success
Jonatasjes Jul 16, 2021
e74349b
chore: add express
Jonatasjes Jul 16, 2021
f793faf
refactor: create app.ts
Jonatasjes Jul 16, 2021
54efdc7
chore: add jest configs and scripts
Jonatasjes Jul 16, 2021
16e4b66
feat: ensure requests parse body as json
Jonatasjes Jul 16, 2021
0adaf45
feat: ensure cors is enabled
Jonatasjes Jul 16, 2021
fb1bfa6
feat: ensure requests return json as default content type
Jonatasjes Jul 16, 2021
67fd1b9
refactor: group middleware interfaces in a single file
Jonatasjes Jul 16, 2021
cf49fbd
feat: add AddProperty composition and db conection
Jonatasjes Jul 17, 2021
c776d78
test: add AddProperty composition and db conection
Jonatasjes Jul 17, 2021
f726373
refactor: delete id from AddPropertyModel
Jonatasjes Jul 17, 2021
94b2728
refactor: change routes to use filesystem instead of fast-glob
Jonatasjes Jul 17, 2021
0455750
refactor: add name author
Jonatasjes Jul 17, 2021
d34c34a
chore: add dockerfile
Jonatasjes Jul 17, 2021
ae159db
chore: add docker-compose
Jonatasjes Jul 17, 2021
58f9a8c
fix: docker-compose
Jonatasjes Jul 17, 2021
ed6d084
chore: change dev script to user docker-compose
Jonatasjes Jul 17, 2021
6407eb3
chore: enable debug with vscode
Jonatasjes Jul 17, 2021
397a680
chore: remove dockerfile to use docker-compose only
Jonatasjes Jul 17, 2021
2c8e6e4
chore: add nodemon on docker
Jonatasjes Jul 17, 2021
041147d
refactor: change AddProperty to use a auto date
Jonatasjes Jul 17, 2021
53fb1cd
feat: ensure LoadPropertiesController calls LaodPropertiesUseCase
Jonatasjes Jul 17, 2021
b998cb8
test: ensure LoadPropertiesController calls LaodPropertiesUseCase
Jonatasjes Jul 17, 2021
4984ffa
refactor: move sut creation to a factory method
Jonatasjes Jul 17, 2021
1091c5e
feat: ensure LoadPropertiesController returns 200 on success
Jonatasjes Jul 17, 2021
9dc85ba
test: ensure LoadPropertiesController returns 200 on success
Jonatasjes Jul 17, 2021
01f1740
feat: ensure LoadPropertiesController returns 500 if LoadPropertiesUs…
Jonatasjes Jul 17, 2021
812e2fa
test: ensure LoadPropertiesController returns 500 if LoadPropertiesUs…
Jonatasjes Jul 17, 2021
faf9a4e
feat: ensure LoadPropertiesController returns 204 if there is no content
Jonatasjes Jul 17, 2021
85bf940
test: ensure LoadPropertiesController returns 204 if there is no content
Jonatasjes Jul 17, 2021
c6e93ba
fix: problem with the repository
Jonatasjes Jul 18, 2021
dec48fa
refactor: move sut creation to a factory method
Jonatasjes Jul 18, 2021
de54d6a
feat: ensure DbLoadProperties returns a list od property on success
Jonatasjes Jul 18, 2021
9fd3f3d
test: ensure DbLoadProperties returns a list od property on success
Jonatasjes Jul 18, 2021
f18b6ff
test: ensure DbLoadProperties throws if LoadPropertiesRepository throws
Jonatasjes Jul 18, 2021
2c4f8a1
refactor: organize PropertyMongoRepository tests in describes
Jonatasjes Jul 18, 2021
27028f7
feat: ensure PropertyMongoRepository load all properties
Jonatasjes Jul 18, 2021
61aa56f
test: ensure PropertyMongoRepository load all properties
Jonatasjes Jul 18, 2021
d4f0016
test: ensure PropertyMongoRepository returns an empty list if there a…
Jonatasjes Jul 18, 2021
7ca5b1f
feat: ensure PropertyRoutes return 200 on load properties success
Jonatasjes Jul 18, 2021
2597a82
test: ensure PropertyRoutes return 200 on load properties success
Jonatasjes Jul 18, 2021
a47640f
refactor: ensure LoadProperties receive query
Jonatasjes Jul 18, 2021
5198b56
feat: ensure LoadPropertyController returns 200 on success
Jonatasjes Jul 18, 2021
14bfc5d
test: ensure LoadPropertyController returns 200 on success
Jonatasjes Jul 18, 2021
089a4b4
feat: ensure LoadPropertyController returns 500 if LoadProperty throws
Jonatasjes Jul 18, 2021
1c901c9
test: ensure LoadPropertyController returns 500 if LoadProperty throws
Jonatasjes Jul 18, 2021
f5fd907
feat: ensure DbLoadProperty call LoadPropertyRepository
Jonatasjes Jul 18, 2021
df54dda
test: ensure DbLoadProperty call LoadPropertyRepository
Jonatasjes Jul 18, 2021
c2bc6f8
test: ensure DbLoadProperty return a property on succes
Jonatasjes Jul 18, 2021
6892554
test: ensure DbLoadProperty throw if LoadPropertyRepository throws
Jonatasjes Jul 18, 2021
408b859
feat: ensure PropertyMongoRepository load the property finded by id o…
Jonatasjes Jul 18, 2021
545ea91
test: ensure PropertyMongoRepository load the property finded by id o…
Jonatasjes Jul 18, 2021
b4684c4
feat: ensure load property route return 200 on load property success
Jonatasjes Jul 18, 2021
ef4b473
test: ensure load property route return 200 on load property success
Jonatasjes Jul 18, 2021
476fe28
feat: ensure UpdatePropertyController returns 400 if hava some value …
Jonatasjes Jul 18, 2021
26efaf9
test: ensure UpdatePropertyController returns 400 if hava some value …
Jonatasjes Jul 18, 2021
176e3e5
test: ensure UpdatePropertyController returns 200 on success
Jonatasjes Jul 18, 2021
d254b77
test: ensure UpdatePropertyController returns 404 if anr property is …
Jonatasjes Jul 18, 2021
16850d5
test: ensure UpdatePropertyController returns 500 if UpdateProperty t…
Jonatasjes Jul 18, 2021
c5f99f6
fix: name test UpdatePropertyController returns 404 if anr property i…
Jonatasjes Jul 18, 2021
b99e9a8
feat: ensure DbUpdateProperty call UpdatePropertRepository
Jonatasjes Jul 18, 2021
3999ec7
test: ensure DbUpdateProperty call UpdatePropertRepository
Jonatasjes Jul 18, 2021
59213e4
test: ensure DbUpdateProperty return a new Propert on succes
Jonatasjes Jul 18, 2021
e304246
test: ensure DbUpdateProperty throw if UpdatePropertyRepository throws
Jonatasjes Jul 18, 2021
0d00f60
feat: ensure PropertyMongoRepositore update the property finded by id…
Jonatasjes Jul 18, 2021
f723b17
test: ensure PropertyMongoRepositore update the property finded by id…
Jonatasjes Jul 18, 2021
27f8775
feat: ensure integration test with patch route
Jonatasjes Jul 18, 2021
75f16ab
feat: ensure DeletePropertyController returns 204 on success
Jonatasjes Jul 18, 2021
3880d32
test: ensure DeletePropertyController returns 204 on success
Jonatasjes Jul 18, 2021
2c321c3
feat: ensure DeletePropertyController returns 400 if ID is undefined
Jonatasjes Jul 18, 2021
7a5c493
test: ensure DeletePropertyController returns 400 if ID is undefined
Jonatasjes Jul 18, 2021
3c30637
test: ensure DeletePropertyController returns 500 if DeleteProperty t…
Jonatasjes Jul 18, 2021
dbd9eca
refactor: create protocol to data usecases
Jonatasjes Jul 18, 2021
bfabf3b
feat: ensure DbDeletePropert calls DeletePropertyRepository
Jonatasjes Jul 18, 2021
703c147
test: ensure DbDeletePropert calls DeletePropertyRepository
Jonatasjes Jul 18, 2021
fe88dbc
test: ensure DbDeletePropert throw if DeletePropertyRepository throws
Jonatasjes Jul 18, 2021
ae81d93
feat: ensure PropertyMongoRepository delete the property finded by ID…
Jonatasjes Jul 18, 2021
5e94e9f
test: ensure PropertyMongoRepository delete the property finded by ID…
Jonatasjes Jul 18, 2021
b8bff8c
feat: ensure integration test with DbDeleteProperty
Jonatasjes Jul 19, 2021
84580d0
chore: add nextjs and dependences
Jonatasjes Jul 19, 2021
52b43e1
chore: add formate dependences
Jonatasjes Jul 19, 2021
c371c01
refactor: clear folders
Jonatasjes Jul 19, 2021
41d00fc
feat: add style and buttons to main page
Jonatasjes Jul 19, 2021
aea80a8
feat: add principal cart on home page
Jonatasjes Jul 19, 2021
8e35f76
feat: add the edit cart
Jonatasjes Jul 19, 2021
c98ef43
feat: add header component with navigation
Jonatasjes Jul 19, 2021
8e5632b
feat: add footer
Jonatasjes Jul 19, 2021
994c0ac
ensure all properties are show on home page
Jonatasjes Jul 19, 2021
7be4edf
feat: ensure show and hide add property form
Jonatasjes Jul 19, 2021
a9eebed
feat: ensure add functionality is work
Jonatasjes Jul 19, 2021
a689bf8
feat: ensure edit functionality is work
Jonatasjes Jul 20, 2021
fbb09e8
feat: ensure delete functionality is work
Jonatasjes Jul 20, 2021
4c427a4
feat: add validaCEP
Jonatasjes Jul 20, 2021
c0a1805
feat: add seach input
Jonatasjes Jul 20, 2021
e526bcf
fix: version stable
Jonatasjes Jul 20, 2021
cf8d441
Update README.md
Jonatasjes Jul 20, 2021
76e3478
Update README.md
Jonatasjes Jul 20, 2021
11ec1e1
Update README.md
Jonatasjes Jul 20, 2021
bd58b43
chore: add swagger
Jonatasjes Jul 20, 2021
93248b6
fix: add swagger right local
Jonatasjes Jul 20, 2021
ea0247a
feat: add no cache middleware
Jonatasjes Jul 21, 2021
e63bd1f
test: add no cache middleware
Jonatasjes Jul 21, 2021
cec3df9
feat: apply no-cache middleware on swagger api
Jonatasjes Jul 21, 2021
e088389
Update README.md
Jonatasjes Jul 21, 2021
034623e
Update README.md
Jonatasjes Jul 21, 2021
c2cfa25
Update README.md
Jonatasjes Jul 21, 2021
4b4322d
feat: api documentation
Jonatasjes Jul 21, 2021
4063fbc
Update README.md
Jonatasjes Jul 21, 2021
13047a7
Merge branch 'main' of https://github.com/Jonatasjes/teste-dev-fullst…
Jonatasjes Jul 21, 2021
c317b60
feat: add postman docs
Jonatasjes Jul 21, 2021
3a89984
feat: add postman docs
Jonatasjes Jul 21, 2021
18d6728
--no-edit
Jonatasjes Jul 21, 2021
3dfcde0
refactor: fix and increment
Jonatasjes Jul 21, 2021
b67a7d2
Update README.md
Jonatasjes Jul 21, 2021
1e9e814
Update README.md
Jonatasjes Jul 21, 2021
9b1d169
refactor: add fucionalities and removing trash
Jonatasjes Jul 21, 2021
9672e92
refactor: add placehold text search
Jonatasjes Jul 21, 2021
4481f6e
Merge branch 'main' of https://github.com/Jonatasjes/teste-dev-fullst…
Jonatasjes Jul 21, 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
13 changes: 13 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "attach",
"name": "Docker: Attach to Node",
"remoteRoot": "/usr/src/teste-dev-fulstack-api",
"port": 9222,
"restart": true
}
]
}
61 changes: 61 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,64 @@
# Projeto CertImóveis

Aplicação de venda de imóveis feita em Nodejs e Reactjs com Typescript, TDD, clean arquitecture e Docker no backend, para o processo seletivo de Desenvolvedor Fullstack da Certsys.

## CertImóveis

Uma lista de tarefas com usuários, que para cada usuário logado é mostrado apenas as suas tarefas. Aplicação está sendo construída no objetivo de por a prova meus conhecimentos adquiridos nos meus estudos diários.

### [Link para a documentação da api](http://localhost:5050/api-docs/)

### Principais tecnologias utilizadas

- Typescript
- Reactjs
- Nextjs
- Nodejs
- Express
- Mongodb
- Docker

### Para rodar você precisará

- Node
- Docker

### Inicialização Passo à Passo

Rodando o Backend Desenvolvimento
- cd backend
- npm i
- npm run up

Rodando o Frontend Desenvolvimento
- cd frontend
- npm i
- npm run dev

Rodando o Backend Produção
- cd backend
- npm i
- npm run build
- npm run start

Rodando o Frontend Produção
- cd frontend
- npm i
- npm run build
- npm run start

### Rodando testes no backend

Testes unitarios
- cd backend
- npm test:unit

Testes de integração
- cd backend
- test:integration

# Descrição da Tarefa

# Desenvolvedor Full Stack

Então, quer dizer que você gosta de desafios e quer se tornar um desenvolvedor full stack na Certsys? Está no lugar certo!
Expand Down
12 changes: 12 additions & 0 deletions backend/.editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# EditorConfig is awesome: https://EditorConfig.org

# top-most EditorConfig file
root = true

[*]
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
7 changes: 7 additions & 0 deletions backend/.eslintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
node_modules
dist
build
coverage
/*.js
globalConfig.json
data
23 changes: 23 additions & 0 deletions backend/.eslintrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
{
"root": true,
"parser": "@typescript-eslint/parser",
"plugins": [
"@typescript-eslint",
"prettier"
],
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/eslint-recommended",
"plugin:@typescript-eslint/recommended",
"prettier/@typescript-eslint",
"plugin:prettier/recommended"
],
"rules": {
"no-console": "warn",
"prettier/prettier": "error",
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/no-unused-vars": "off",
"@typescript-eslint/explicit-module-boundary-types": "off",
"@typescript-eslint/no-var-requires": "off"
}
}
5 changes: 5 additions & 0 deletions backend/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
node_modules
dist
coverage
globalConfig.json
data
8 changes: 8 additions & 0 deletions backend/.prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"semi": true,
"trailingComma": "all",
"singleQuote": true,
"printWidth": 100,
"arrowParens": "avoid",
"bracketSpacing": true
}
24 changes: 24 additions & 0 deletions backend/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
version: '3'
services:
mongo:
container_name: mongo-container
image: mongo:3
restart: always
volumes:
- ./data:/data/db
ports:
- '27017:27017'
api:
container_name: api-container
image: node:12
working_dir: /usr/src/teste-dev-fulstack-api
restart: always
command: bash -c "npm install --only=prod && npm run debug"
volumes:
- ./dist/:/usr/src/teste-dev-fulstack-api/dist
- ./package.json:/usr/src/teste-dev-fulstack-api/package.json
ports:
- '5050:5050'
- '9222:9222'
links:
- mongo
4 changes: 4 additions & 0 deletions backend/jest-integration-config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
/* eslint-disable no-undef */
const config = require('./jest.config');
config.testMatch = ['**/*.test.ts'];
module.exports = config;
11 changes: 11 additions & 0 deletions backend/jest-mongodb-config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
/* eslint-disable no-undef */
module.exports = {
mongodbMemoryServerOptions: {
binary: {
version: '4.0.3',
skipMD5: true,
},
autoStart: false,
instance: {},
},
};
4 changes: 4 additions & 0 deletions backend/jest-unit-config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
/* eslint-disable no-undef */
const config = require('./jest.config');
config.testMatch = ['**/*.spec.ts'];
module.exports = config;
13 changes: 13 additions & 0 deletions backend/jest.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
/* eslint-disable no-undef */
module.exports = {
roots: ['<rootDir>/src'],
collectCoverage: true,
collectCoverageFrom: ['<rootDir>/src/**/*.ts'],
coverageDirectory: 'coverage',
coverageProvider: 'v8',
testEnvironment: 'node',
preset: '@shelf/jest-mongodb',
transform: {
'.+\\.ts$': 'ts-jest',
},
};
Loading