diff --git a/Cargo.toml b/Cargo.toml
index 3326466..6767ef0 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -17,6 +17,13 @@ tokio = { version = "1", features = ["rt-multi-thread"], optional = true }
wasm-bindgen = { version = "=0.2.100", optional = true }
serde = { version = "1.0.219", features = ["derive"] }
+tokio-postgres = { version = "0.7.13", optional = true }
+clap = { version = "4.5.37", features = ["derive"], optional = true }
+anyhow = { version = "1.0.98", optional = true }
+log = { version = "0.4.27", optional = true }
+env_logger = { version = "0.11.8", optional = true }
+rand = { version = "0.9.1", optional = true}
+
[features]
hydrate = [
"leptos/hydrate",
@@ -27,10 +34,22 @@ ssr = [
"dep:axum",
"dep:tokio",
"dep:leptos_axum",
+ "dep:tokio-postgres",
+ "dep:clap",
+ "dep:anyhow",
+ "dep:log",
+ "dep:env_logger",
+ "dep:rand",
"leptos/ssr",
"leptos_meta/ssr",
"leptos_router/ssr",
]
+env_logger = ["dep:env_logger"]
+log = ["dep:log"]
+anyhow = ["dep:anyhow"]
+clap = ["dep:clap"]
+tokio-postgres = ["dep:tokio-postgres"]
+rand = ["dep:rand"]
# Defines a size-optimized profile for the WASM bundle in release mode
[profile.wasm-release]
diff --git a/schema.sql b/schema.sql
new file mode 100644
index 0000000..517fc49
--- /dev/null
+++ b/schema.sql
@@ -0,0 +1,29 @@
+CREATE TABLE IF NOT EXISTS Users (
+ -- for foreign key relations
+ user_id SERIAL PRIMARY KEY,
+ -- Public key posted next to display name; never changes
+ pub VARCHAR(255),
+ -- Private key used by user to login
+ priv VARCHAR(4096),
+ display_name VARCHAR(255)
+);
+
+CREATE TABLE IF NOT EXISTS UserRooms (
+ user_id INTEGER,
+ room_id INTEGER
+);
+
+CREATE TABLE IF NOT EXISTS Rooms (
+ room_id SERIAL PRIMARY KEY,
+
+ display_name VARCHAR(255)
+);
+
+CREATE UNIQUE INDEX IF NOT EXISTS display_name_idx ON Rooms (display_name);
+
+CREATE TABLE IF NOT EXISTS UserVote (
+ user_id INTEGER,
+ imdb_title VARCHAR(255),
+
+ rank INTEGER
+);
\ No newline at end of file
diff --git a/src/app.rs b/src/app.rs
index 849adc9..cbb5131 100644
--- a/src/app.rs
+++ b/src/app.rs
@@ -4,9 +4,12 @@ use leptos_router::{
components::{Route, Router, Routes},
StaticSegment,
};
+
+use user::User;
use movies::Movies;
mod movies;
+mod user;
pub fn shell(options: LeptosOptions) -> impl IntoView {
view! {
@@ -89,6 +92,7 @@ fn HomePage() -> impl IntoView {
view! {
"Welcome to Wiseau movie picker"
+