Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
3 changes: 3 additions & 0 deletions backend/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
.idea
achados-e-perdidos.iml
target
23 changes: 23 additions & 0 deletions backend/HELP.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Read Me First
The following was discovered as part of building this project:

* The original package name 'com.desafio.achados-e-perdidos' is invalid and this project uses 'com.desafio.achadoseperdidos' instead.

# Getting Started

### Reference Documentation
For further reference, please consider the following sections:

* [Official Apache Maven documentation](https://maven.apache.org/guides/index.html)
* [Spring Boot Maven Plugin Reference Guide](https://docs.spring.io/spring-boot/docs/2.4.0/maven-plugin/reference/html/)
* [Create an OCI image](https://docs.spring.io/spring-boot/docs/2.4.0/maven-plugin/reference/html/#build-image)
* [Spring Web](https://docs.spring.io/spring-boot/docs/2.4.0/reference/htmlsingle/#boot-features-developing-web-applications)
* [Validation](https://docs.spring.io/spring-boot/docs/2.4.0/reference/htmlsingle/#boot-features-validation)

### Guides
The following guides illustrate how to use some features concretely:

* [Building a RESTful Web Service](https://spring.io/guides/gs/rest-service/)
* [Serving Web Content with Spring MVC](https://spring.io/guides/gs/serving-web-content/)
* [Building REST services with Spring](https://spring.io/guides/tutorials/bookmarks/)

88 changes: 88 additions & 0 deletions backend/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
# Lost and Found

Essa aplicação fornece uma interface REST para cadastro de itens (achados ou perdidos), por uma pessoa.

## Como usar

Antes de tudo, é necessário ter algumas dependências instaladas.

### Dependências

- Java (>= 8)
- Maven

### Executando a api

```bash
$ cd backend
$ mvn spring-boot:run
```

### Executando os testes
```bash
$ cd backend
$ mvn test
```

### Endpoints

Há dois principais recursos na API: `person` e `item`. Esses são, respectivamente, uma pessoa cadastrada no sistema e seu(s) iten(s) achado(s) ou perdido(s).</br>

Endpoints para `person`: </br>

| Method | Endpoint | Descrição |
|--------|------------------------------|----------------------------------------------------|
| GET | /person?id= | Obtém uma pessoa pelo seu referente id. |
| POST | /person | Cria uma pessoa |
| PATCH | /person/`{id}`/lost-item | Adiciona um novo item (perdido) por uma pessoa. |
| PATCH | /person`{id}`/found-item | Adiciona um novo item (encontrado) por uma pessoa. |


### Requests

POST /person

```json
{
"name": "Wellisson Gomes",
"email": "wellisson@mail.com",
"telephone": "83 9 8765-4321"
}
```

PATCH /person/`{id}`/lost-item

```json
{
"name": "celular",
"description": "Celular dourado, tem um trinco na tela",
"category": "eletrônico",
"city": "Campina Grande",
"state": "paraiba"
}
```

PATCH /person/`{id}`/found-item

De forma análoga a anterior.

Endpoints para `item`:

| Method | Endpoint | Descrição |
|--------|------------------------------|----------------------------------------------------|
| GET | /items?`filter`= | Obtém todos os items presentes. Caso queira, é possível passar um filtro como parametro, mas é opcional. Os filtros possíveis são: `name`, `category`, `city`, `state` e `lost`. Um exemplo: /items?`category`= `eletrônico`. Retorna todos os items que são da categoria eletrônico|
| PUT | /item/`{id}` | Edita as informações de um item existente. |

### Requests

PUT /item/`{id}`

```json
{
"name": "celular",
"description": "Celular dourado, bloqueio de tela um cachorro",
"category": "eletrônico",
"city": "Campina Grande",
"state": "paraiba"
}
```
Loading