Skip to content
Merged
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
52 changes: 23 additions & 29 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,72 +2,66 @@

Olá! Meu nome é **Alisson** e este repositório documenta minha jornada de aprendizado com o **[curso.dev](https://curso.dev/)**, do Filipe Deschamps.

Diferente de um curso tradicional, o objetivo aqui não é apenas seguir uma lista de aulas, mas sim absorver uma **filosofia de desenvolvimento de software**. Este espaço registrará o processo, os erros, as descobertas e a construção de um projeto real, do zero, com foco nos fundamentos.
O projeto central do curso é a construção de um clone completo e funcional do **TabNews**, e é exatamente isso que você verá aqui. Diferente de um curso tradicional, o objetivo não é apenas seguir uma lista de aulas, mas sim absorver uma **filosofia de desenvolvimento de software**. Este espaço registrará o processo, os erros, as descobertas e a construção deste projeto, do zero, com foco nos fundamentos.

Sinta-se à vontade para acompanhar a evolução e o raciocínio por trás de cada commit. 🚀

---

## 📚 A Jornada: Construindo Software com Profundidade
## 📚 A Jornada: Construindo um Clone do TabNews

Este repositório seguirá a metodologia do curso, focada em construir um software robusto e bem arquitetado, entendendo o "porquê" de cada decisão. A estrutura do meu aprendizado será:

- 🧠 **Filosofia e Fundamentos:**
Entendendo os princípios essenciais para criar software de qualidade. Mais do que aprender uma linguagem, o foco é em como pensar como um engenheiro de software: a importância dos testes, da clareza do código e das decisões de arquitetura.
- 🏗️ **Estruturando o Projeto do Zero:**
Iniciando o projeto real do curso. Configuração do ambiente de desenvolvimento, inicialização do controle de versão com Git e a criação da estrutura base da aplicação, preparando o terreno para um desenvolvimento sustentável.
Configuração do ambiente de desenvolvimento, inicialização do controle de versão com Git e a criação da estrutura base da aplicação com Next.js, preparando o terreno para um desenvolvimento sustentável.
- 🧪 **Desenvolvimento Guiado por Testes (TDD):**
Adotando a prática de escrever testes _antes_ do código de produção. O objetivo é garantir que a aplicação seja testável, confiável e que cada nova funcionalidade seja adicionada com segurança.
- 💻 **Construindo a Aplicação (Backend):**
Desenvolvimento do núcleo da aplicação, implementando as regras de negócio, criando a API e conectando com o banco de dados. Cada passo é documentado, refletindo as decisões tomadas durante as aulas.
Adotando a prática de escrever testes _antes_ do código de produção. O objetivo é garantir que a aplicação seja testável, confiável e que cada nova funcionalidade (como a criação de um `endpoint` da API) seja adicionada com segurança.
- 💻 **Construindo a API e o Backend:**
Desenvolvimento do núcleo da aplicação em Node.js, implementando as regras de negócio, criando os `endpoints` da API e conectando com o banco de dados PostgreSQL.
- 🎨 **Desenvolvendo a Interface (Frontend):**
Construção da interface de usuário com React e Next.js, consumindo a API que criamos e tornando a aplicação interativa e funcional para o usuário final.
- 🐳 **Containerização com Docker:**
Empacotando a aplicação em um container Docker para garantir que ela funcione de forma consistente em qualquer ambiente, seja no desenvolvimento local ou na nuvem.
Empacotando a aplicação e o banco de dados em containers Docker para garantir que o ambiente de desenvolvimento seja consistente, portátil e fácil de reproduzir.
- ⚙️ **Integração e Entrega Contínua (CI/CD):**
Automatizando o processo de testes e deploy. Configuração de uma esteira com GitHub Actions para que cada alteração no código principal seja testada e, se aprovada, enviada para produção automaticamente.
- 🚀 **Deploy na Nuvem:**
Colocando o projeto no ar para que o mundo possa acessá-lo. Aprendendo os conceitos práticos de deploy em um provedor de nuvem.
Colocando o projeto no ar em um provedor de nuvem (como a Vercel), aprendendo os conceitos práticos para que o mundo possa acessar a aplicação.

---

## 🛠️ Tecnologias e Ferramentas

Tecnologias que estou aprendendo e utilizando ao longo desta jornada:
Estas são as tecnologias que estou aprendendo e utilizando ao longo desta jornada:

**Linguagens e Runtimes:**
**Stack Principal:**

![Python](https://img.shields.io/badge/Python-3776AB?style=for-the-badge&logo=python&logoColor=white)
![JavaScript](https://img.shields.io/badge/JavaScript-%23F7DF1E.svg?style=for-the-badge&logo=javascript&logoColor=black)
![TypeScript](https://img.shields.io/badge/TypeScript-%233178C6.svg?style=for-the-badge&logo=typescript&logoColor=white)
![NodeJS](https://img.shields.io/badge/Node.js-339933?style=for-the-badge&logo=nodedotjs&logoColor=white)

**Ecossistema Python (Backend & Testes):**

![Django](https://img.shields.io/badge/Django-092E20?style=for-the-badge&logo=django&logoColor=white)
![FastAPI](https://img.shields.io/badge/FastAPI-009688?style=for-the-badge&logo=fastapi&logoColor=white)
![Pytest](https://img.shields.io/badge/Pytest-0A9EDC?style=for-the-badge&logo=pytest&logoColor=white)

**Ecossistema JavaScript (Full Stack & Testes):**

![React](https://img.shields.io/badge/React-61DAFB?style=for-the-badge&logo=react&logoColor=black)
![Next JS](https://img.shields.io/badge/Next.js-000000?style=for-the-badge&logo=nextdotjs&logoColor=white)
![Express.js](https://img.shields.io/badge/Express.js-000000?style=for-the-badge&logo=express&logoColor=white)
![React](https://img.shields.io/badge/React-61DAFB?style=for-the-badge&logo=react&logoColor=black)
![NodeJS](https://img.shields.io/badge/Node.js-339933?style=for-the-badge&logo=nodedotjs&logoColor=white)
![JavaScript](https://img.shields.io/badge/JavaScript-%23F7DF1E.svg?style=for-the-badge&logo=javascript&logoColor=black)

**Banco de Dados:**

![PostgreSQL](https://img.shields.io/badge/PostgreSQL-%23316192.svg?style=for-the-badge&logo=postgresql&logoColor=white)

**Testes:**

![Jest](https://img.shields.io/badge/Jest-C21325?style=for-the-badge&logo=jest&logoColor=white)

**DevOps & Cloud:**

![Docker](https://img.shields.io/badge/Docker-2496ED?style=for-the-badge&logo=docker&logoColor=white)
![GitHub Actions](https://img.shields.io/badge/GitHub%20Actions-2088FF?style=for-the-badge&logo=github-actions&logoColor=white)
![Amazon AWS](https://img.shields.io/badge/AWS-232F3E?style=for-the-badge&logo=amazon-aws&logoColor=white)
![Vercel](https://img.shields.io/badge/Vercel-000000?style=for-the-badge&logo=vercel&logoColor=white)

**Ferramentas Gerais:**
**Ferramentas de Desenvolvimento:**

![Git](https://img.shields.io/badge/GIT-%23F05033.svg?style=for-the-badge&logo=git&logoColor=white)
![GitHub](https://img.shields.io/badge/GitHub-%23181717.svg?style=for-the-badge&logo=github&logoColor=white)
![NPM](https://img.shields.io/badge/NPM-%23CB3837.svg?style=for-the-badge&logo=npm&logoColor=white)
![VSCode](https://img.shields.io/badge/Visual_Studio_Code-007ACC?style=for-the-badge&logo=visual-studio-code&logoColor=white)
![Prettier](https://img.shields.io/badge/Prettier-F7B93E?style=for-the-badge&logo=prettier&logoColor=black)
![ESLint](https://img.shields.io/badge/ESLint-4B32C3?style=for-the-badge&logo=eslint&logoColor=white)

---

Expand Down
Loading