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
6 changes: 6 additions & 0 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions .idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 9 additions & 0 deletions .idea/spring-boot-11.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

42 changes: 42 additions & 0 deletions .idea/workspace.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

79 changes: 0 additions & 79 deletions Leiame.md

This file was deleted.

83 changes: 22 additions & 61 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,79 +1,40 @@
# Code Challenge Java
# Como usar

## Challenge Overview:
## Backend

You are tasked with building a web application that allows users to create and manage their to-do lists. The application should consist of a responsive webpage built in React, and an API built in Java Spring Boot to store and manage the to-do lists.
Foi utilizado o docker para usar a aplicação localmente. Comando para subir um container com o MySQL:

### The Repositories
- **Frontend**: Built with React. You can also choose another React framework if you prefer.
- **Backend**: Built with Java Spring Boot, utilizing any database of your choice (e.g., MySQL, PostgreSQL, MongoDB, or in-memory).
`docker-compose up`

### The Layout
Refer to the provided [layout mockup](https://www.figma.com/file/sQrUVHTlyogq3qGdkqGTXN/mockup?node-id=7%3A2&t=ANTOTiqjqGWYuoUr-0) for both desktop and mobile versions. Please follow this design as closely as possible.
Para executar os testes foi utilizado o banco em memória h2, então basta rodar o script.

### Functionality Requirements:
## Frontend

1. Users should be able to **create**, **read**, **update**, and **delete** to-do items using the API.
2. Users should be able to **mark an item as a favorite**.
3. Users should be able to **assign a color** to each to-do item.
4. The React frontend should display the user's to-do list in a responsive and visually appealing manner, with the ability to **filter** by favorite items and color.
5. Favorited items should appear at the top of the list.
Para instalar as dependências, deve-se usar o seguinte comando:

### Technical Requirements:
1. **Backend API**:
- Built using **Java Spring Boot**.
- Use any database of your choice (e.g., PostgreSQL, MongoDB, in-memory, etc.).
2. **Frontend**:
- Built using **React** and modern web development tools.
3. **Responsive Design**:
- The application should be fully responsive, providing a seamless experience across desktop and mobile devices.
`yarn`

### Deliverables:
Para iniciar, deve-se usar o seguinte comando:

1. A link to a GitHub repository containing the complete source code for both the **backend** and **frontend**.
2. A written description of how to set up and run the application locally.
`yarn start`

### Evaluation Criteria:
Versão node:

1. **Code Quality**: Well-structured and maintainable code.
2. **Code Format**: Consistent and follows best practices.
3. **Code Performance**: Efficient and scalable solutions.
4. **Frontend Design**: A user-friendly, visually appealing interface.
5. **Readability**: Is the code easy to understand and maintain?
6. **Mobile-First Approach**: The design should prioritize mobile responsiveness.
7. **Code Responsibility**: Clean separation of concerns (frontend vs. backend).
8. **Feature Completeness**: Does the app meet all the listed functional requirements?
9. **Responsiveness**: Does the app work well across different screen sizes?
10. **Best Practices**: Use of modern web tools and standards.
11. **Design**: Does the app follow the provided design mockup?
12. **Documentation**: Well-documented code and setup instructions.
`16.20.1`

### Backend:
1. **Java**: Version 11+
2. **Framework**: Spring Boot
3. **Database**: Choose your own, or use an in-memory database (e.g., H2).
Para facilitar o uso inicial da aplicação, foi criado uma classe que cria vários registros. Nessa criação será adicionado um usuário com todas as permissões, exceto a master. Segue login abaixo:

### Frontend:
1. **Node**: ^16.15.0
2. **NPM**: ^8.5.5
3. **Framework**: React
4. **CSS**: Sass or another preprocessor of your choice.
```markdown
username: alex
password: abc123
```

### Want to Impress Us Even More?
# Detalhes da implementação

1. Correctly define types and interfaces.
2. Set up and enforce **ESLint** rules.
3. Create a **Prettier** configuration for consistent formatting.
4. Containerize the app with **Docker**.
5. Write unit and integration **tests**.
6. Set up **CI/CD** pipelines for automated testing and deployment.
- Adicionei um simples comportamento de autenticação e autorização onde cada funcionalidade tem a sua devida permissão;

### Instructions for Submission:
- Cada usuário poderá apenas acessar as suas anotações (implementação pelo frontend, aqui poderia ter bloqueado no backend também);

1. Create a file `PULL_REQUEST.md` in which you describe your process, the decisions you made, and any important details about the implementation.
2. Create a pull request for both the **backend** and **frontend** repositories using the same branch name.
3. Send us the pull request and you're done!
- Foi criado uma outra tela para gerenciar as anotações/tarefas, inclusive filtrar pela data de criação;

---

Good luck! 🚀
- Apenas usuário com a permissão master pode editar os usuários, caso contrário só poderá editar o seu usuário.
32 changes: 32 additions & 0 deletions backend/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**/target/
!**/src/test/**/target/

### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache

### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr

### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
!**/src/main/**/build/
!**/src/test/**/build/

### VS Code ###
.vscode/
Loading