https://github.com/joao-pedro-p-holanda/yatd
Yet Another ToDo é uma aplicação web para gerenciamento de tarefas que permite também que você agende suas compras e saiba quanto dinheiro anda gastando na internet
https://github.com/joao-pedro-p-holanda/yatd
ruby-on-rails todolist
Last synced: 8 months ago
JSON representation
Yet Another ToDo é uma aplicação web para gerenciamento de tarefas que permite também que você agende suas compras e saiba quanto dinheiro anda gastando na internet
- Host: GitHub
- URL: https://github.com/joao-pedro-p-holanda/yatd
- Owner: Joao-Pedro-P-Holanda
- License: gpl-3.0
- Created: 2024-12-23T21:39:12.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2025-01-21T22:41:05.000Z (9 months ago)
- Last Synced: 2025-01-21T23:29:19.924Z (9 months ago)
- Topics: ruby-on-rails, todolist
- Language: Ruby
- Homepage: https://yatd-xism.onrender.com
- Size: 640 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README

# Yet Another ToDO
Este projeto consiste de uma Todo list implementada com o framework Ruby on Rails, mas com certos
diferenciais de outras versões dessa implementação comum: além da definição de tarefas,
você pode também agendar compras online que pretenda fazer, e visualizar os gastos feitos com
essas compras.
## Funcionalidades
- Criar diferentes listas de tarefas.
- Manipular tarefas individuais em cada lista.
- Criar compras agendadas.
- Controlar quais itens serão comprados e visualizar o balanço após as compras.
## Ferramentas
- Ruby 3.3.6
- Rails 8.0.1 (última versão)
- PostgreSQL 16.6 (última versão disponibilizada na plataforma Render)
- Redis 6.2.14 (última versão disponibilizada na plataforma Render)
## Banco de Dados
O banco de dados escolhido para essa aplicação foi o PostgreSQL pela minha familiaridade anterior,
juntamente com a facilidade de configuração e uso.
### Entidades
Abaixo está um diagrama das principais entidades da aplicação e seus relacionamentos:
```mermaid
erDiagram
users ||--o{ task_lists: "Pode ou não ter listas"
users ||--o{ purchases: "Pode ou não ter compras"
task_lists ||--|{ tasks : "Possui uma ou mais"
task_lists ||--o{ task_lists_statuses : "Diferentes status para uma lista"
task_lists_statuses ||--o{ statuses : "Diferentes listas para um status"
tasks ||--o{ task_checks : "Pode ter várias"
tasks ||--o{ task_tags : "Pode ter várias"
purchases ||--|{ purchase_links : "Possui um ou mais"
users {
int id
string name
string email
datetime updated_at
datetime created_at
}
task_lists {
int id
string name
string description
datetime updated_at
datetime created_at
}
task_lists_statuses {
int id
int task_list_id
int status_id
datetime created_at
datetime updated_at
}
statuses {
int id
string name
string color
datetime created_at
datetime updated_at
}
tasks {
int id
string name
string description
string status
int priority
datetime due_date
datetime updated_at
datetime created_at
}
task_tags {
int id
string name
string color
datetime updated_at
datetime created_at
}
task_checks {
int id
string description
boolean complete
datetime updated_at
datetime created_at
}
purchases {
int id
string name
string description
datetime due_date
}
purchase_links {
int id
boolean complete
float value
string url
datetime updated_at
datetime created_at
}
```
## Capturas de tela
Aqui estão algumas capturas de tela da aplicação:
- **Criando tarefas**. Nessa funcionalidade eu criei os formulários e visualização de tarefas
de forma não intrusiva com o uso do Turbo Rails, que consegue realizar atualizações em partes
específicas da interface de acordo com as requisições.



- **Criando lista de compras**. Para isso inclui uma biblioteca que permite extrair as imagens e outras
informações de social preview definidas com OpenGraph, isso permitiu que os links de compra
tivessem suas informações preenchidas dinamicamente com base apenas nas informações já existentes na página.

