chore: initial project setup

- Cargo init with dependencies (ratatui, crossterm, tokio, reqwest, rusqlite, serde, chrono, dirs)
- Module structure: domain/, ui/, infrastructure/
- Domain models (TaskList, Task, TaskStatus, SyncAction, SyncQueueItem)
- .gitignore for target/ and *.db
- Rustls-based TLS (no OpenSSL dependency)
This commit is contained in:
Ruben Rosario
2026-06-20 19:35:19 +01:00
commit adf3889863
12 changed files with 2093 additions and 0 deletions
+1
View File
@@ -0,0 +1 @@
pub mod models;
+43
View File
@@ -0,0 +1,43 @@
use chrono::NaiveDateTime;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct TaskList {
pub id: String,
pub title: String,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Task {
pub id: String,
pub list_id: String,
pub title: String,
pub notes: Option<String>,
pub status: TaskStatus,
pub due: Option<NaiveDateTime>,
pub position: i64,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub enum TaskStatus {
NeedsAction,
Completed,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub enum SyncAction {
Create,
Update,
Delete,
Reorder,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SyncQueueItem {
pub id: i64,
pub action: SyncAction,
pub task_id: String,
pub list_id: String,
pub payload: String,
pub created_at: String,
}
+1
View File
@@ -0,0 +1 @@
// TODO: Fase 5 - Google Tasks API integration
+1
View File
@@ -0,0 +1 @@
// TODO: Fase 2 - SQLite storage implementation
+2
View File
@@ -0,0 +1,2 @@
pub mod db;
pub mod api;
+7
View File
@@ -0,0 +1,7 @@
mod domain;
mod ui;
mod infrastructure;
fn main() {
println!("Task App - Google Tasks TUI");
}
+1
View File
@@ -0,0 +1 @@
// TODO: Fase 3 - Ratatui widgets
+1
View File
@@ -0,0 +1 @@
pub mod components;