diff --git a/src/main.rs b/src/main.rs index 7bdf1a4..d6f2686 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,10 +1,22 @@ -mod project; +use rouille::router; + mod db; +mod project; fn main() { println!("Starting server on localhost:8080"); - rouille::start_server("localhost:8080", move |_request| { - rouille::Response::empty_404() + rouille::start_server("localhost:8080", move |request| { + router!(request, + (GET) ["/main.css"] => { + let css = include_bytes!("main.css"); + rouille::Response::from_data("text/css", css.as_ref()) + }, + (GET) ["/project-card.js"] => { + let js = include_bytes!("project-card.js"); + rouille::Response::from_data("application/javascript", js.as_ref()) + }, + _ => rouille::Response::empty_404() + ) }); } diff --git a/todo.md b/todo.md index aec2507..cdcdad0 100644 --- a/todo.md +++ b/todo.md @@ -6,7 +6,7 @@ [x] 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. [x] Create a `main.css` file in src. Use mvp.css as a starting point. [x] Create a `project-card.js` file in src that creates a web component for displaying a project. -[ ] Using a Rouille router, create `GET /main.css` and `GET /project-card.js` endpoints that returns the relevant files. Use the include_bytes! macro. +[x] Using a Rouille router, create `GET /main.css` and `GET /project-card.js` endpoints that returns the relevant files. Use the include_bytes! macro. [ ] Create a `GET /projects` endpoint. Using Maud for markup generation, have this endpoint return an HTML page that shows all projects. Each project should be a `project-card` web component. Keep the page simple: no title or any buttons currently. [ ] Create a `POST /projects` endpoint that accepts URL encoded data and creates a new project. [ ] Create a `GET /new-project` endpoint that returns a HTML page with a project creation form. Keep it simple. \ No newline at end of file