Create Project struct

This commit is contained in:
Nettika 2026-01-25 14:31:30 -08:00
parent e8eab81957
commit 57f21e2634
No known key found for this signature in database
3 changed files with 29 additions and 1 deletions

View file

@ -1,3 +1,5 @@
mod project;
fn main() {
println!("Starting server on localhost:8080");

26
src/project.rs Normal file
View file

@ -0,0 +1,26 @@
pub struct Project {
pub id: i64,
pub title: String,
pub created_time: i64,
pub last_modified_time: i64,
pub percentage_completed: i32,
pub archived: bool,
}
impl Project {
pub fn new(title: String) -> Self {
let now = std::time::SystemTime::now()
.duration_since(std::time::UNIX_EPOCH)
.unwrap()
.as_secs() as i64;
Self {
id: 0,
title,
created_time: now,
last_modified_time: now,
percentage_completed: 0,
archived: false,
}
}
}

View file

@ -2,7 +2,7 @@
[x] Template a Rouille server that always returns an empty 404.
[x] Create a database schema. There should just be one table for now: `projects`. The Projects table contains info about each project in the board. The table should have columns for title, created time, last modified time, percentage completed (integer), and a flag for archived. Since this is a single-user server, there doesn't need to be an metadata about whose project it is.
[ ] Create a `Project` struct that corresponds to the schema definition.
[x] Create a `Project` struct that corresponds to the schema definition.
[ ] Create a module or struct at your discretion for interfacing with the database. Create functions for the following: create a project, update a project's progress, archive a project, unarchive a project, and list of all projects.
[ ] Create a `main.css` file in src. Use mvp.css as a starting point.
[ ] Create a `project-card.js` file in src that creates a web component for displaying a project.