Um aplicativo web Fullstack de lista de tarefas (To-Do List) construído para demonstrar sólidos conhecimentos em desenvolvimento Backend com Go, arquitetura de software e deploy em nuvem.
O foco deste projeto é a construção de uma API REST nativa em Go, priorizando o uso da biblioteca padrão (net/http), sem depender de frameworks externos. A aplicação está conteinerizada com Docker e preparada para execução serverless no Google Cloud Run, com integração via GitHub.
Desenvolvi este projeto para colocar em prática e demonstrar minhas habilidades nas seguintes áreas:
- Desenvolvimento Backend: Criação de APIs REST de alta performance, roteamento nativo e processamento JSON usando Go.
- Gerenciamento de Estado e Concorrência: Manipulação segura de dados em memória utilizando
sync.Mutexpara evitar Data Races em aplicações concorrentes. - DevOps & Cloud: Criação de imagens Docker (através de um
Dockerfileotimizado) e deploy real na nuvem utilizando o Google Cloud Run. - Fundamentos Web: Comunicação assíncrona com
Fetch APIe construção de interfaces dinâmicas utilizando apenas Vanilla JavaScript, HTML5 e CSS3 (Design moderno em Glassmorphism/Dark Theme).
- Backend: Go (Golang) - net/http, encoding/json, sync
- Frontend: HTML5, CSS3, JavaScript (Vanilla Puro)
- Infraestrutura / DevOps: Docker, Google Cloud Run, GitHub
A aplicação segue a arquitetura Client-Server, onde o frontend interage de forma totalmente assíncrona com uma API RESTful.
- Servidor de Arquivos Estáticos: A API nativa do Go (
http.FileServer) é responsável por servir de forma eficiente os ativos do Frontend. - Operações CRUD Completas:
POST /tasks: Adicionar novas tarefas.GET /tasks: Listar todas as tarefas ativas na sessão.PUT /tasks/{id}: Atualizar o status (concluir/desmarcar) de uma tarefa.DELETE /tasks/{id}: Remover definitivamente uma tarefa da listagem.
- Segurança de Concorrência: O backend é capaz de processar múltiplas requisições simultâneas mantendo a integridade das informações no banco de dados em memória graças à implementação de mecanismos de bloqueio (
sync.Mutex).
Você pode executar o projeto de duas formas: utilizando o Go diretamente ou através de um container Docker.
Pré-requisito: Go 1.20+ instalado.
- Clone o repositório e acesse a pasta do projeto:
git clone https://github.com/danielvor/go.git cd go - Execute o servidor:
go run main.go
- Acesse no navegador:
http://localhost:8080
Pré-requisito: Docker Desktop instalado.
- Clone o repositório e acesse a pasta.
- Construa a imagem Docker:
docker build -t task-manager-go . - Execute o container isolado expondo a porta
8080:docker run -p 8080:8080 task-manager-go
- Acesse no navegador:
http://localhost:8080
Daniel Rodrigues
Estudante de Desenvolvimento de Software na Fatec Itaquera | Desenvolvedor de Software Backend
Sou um desenvolvedor apaixonado por criar soluções eficientes, escaláveis e limpas, com forte interesse em arquitetura de backend, cloud computing e evolução contínua na linguagem Go. Busco sempre aplicar as melhores práticas de engenharia de software para entregar valor real através do código.
Status: Aberto a oportunidades para atuar na área como Desenvolvedor de Software.