Create Project struct
This commit is contained in:
parent
e8eab81957
commit
57f21e2634
3 changed files with 29 additions and 1 deletions
|
|
@ -1,3 +1,5 @@
|
||||||
|
mod project;
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
println!("Starting server on localhost:8080");
|
println!("Starting server on localhost:8080");
|
||||||
|
|
||||||
|
|
|
||||||
26
src/project.rs
Normal file
26
src/project.rs
Normal 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,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
2
todo.md
2
todo.md
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
[x] Template a Rouille server that always returns an empty 404.
|
[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.
|
[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 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 `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.
|
[ ] Create a `project-card.js` file in src that creates a web component for displaying a project.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue