Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
77 commits
Select commit Hold shift + click to select a range
7106b25
feat(client): add a very basic WIP client
csboo Dec 2, 2025
4e816eb
fix(client): admin doesnt need to join
csboo Dec 2, 2025
a7b7fc9
feat(client): refactor main.css, add colorscheme in tailwind.css
csboo Dec 3, 2025
454c8d5
feat(client): styles for buttons and inputs
csboo Dec 3, 2025
6703b74
feat(client): styles for the table
csboo Dec 3, 2025
16d9fdc
fix(client): adjust for updated backend
csboo Dec 3, 2025
2baf2da
chores(client): better variable naming scheme
csboo Dec 3, 2025
927aaf6
fix(client): support setting the puzzle value
csboo Dec 3, 2025
ee97344
feat(client): see puzzle value by table header hover
csboo Dec 3, 2025
1b6e47e
misc(client): mock data for backend
csboo Dec 5, 2025
596d7ab
chores(client): code cleanup + add missing import in main
csboo Dec 5, 2025
978c25d
misc(client): some logs
csboo Dec 5, 2025
a50612d
feat(client): server message as popup
csboo Dec 5, 2025
a4d4799
fix(client): fixed wrong patch file
csboo Dec 5, 2025
a5f0f44
fix(client): support new api endpoints
csboo Dec 5, 2025
f13ad11
fix(client): support latest api models
csboo Dec 5, 2025
d26a9eb
feat(client): click to fullscreen table
csboo Dec 6, 2025
c861025
feat(client): (probably) all messages and placeholders in hungarian
csboo Dec 6, 2025
2dba63d
misc(client): move and rescale popup message
csboo Dec 6, 2025
13f1329
feat(client): set puzzles from csv
csboo Dec 8, 2025
b1a5b25
refactor(client): separate into crates, cleaner code
csboo Dec 8, 2025
6b33f94
fix(client): dont cut hover popup on fullscreen
csboo Dec 8, 2025
d7cb59b
fix(client): fix csv parser
csboo Dec 8, 2025
23f17a3
refactor(client): move ScoreTabel to component, code cleanup
csboo Dec 8, 2025
9440e72
merge(client): backend latest
csboo Dec 8, 2025
cb7d5b3
feat(client): popup red on error, blue on normal
csboo Dec 9, 2025
4b9e314
fix(client): event title actually optional
csboo Dec 9, 2025
e63870d
fix(client): sort the table so it doesnt jump around
csboo Dec 9, 2025
a6c9001
misc(client): minor qol tweaks
csboo Dec 9, 2025
4cadc80
feat(client): big loading screen
csboo Dec 9, 2025
7f71764
misc(client): better code for message handling
csboo Dec 9, 2025
911b97f
fix(client): no unwrap, no unsafe, satisfy clippy
csboo Dec 9, 2025
1bb42b0
misc(client): refactor score_table ui a bit
csboo Dec 9, 2025
7f012c2
feat(client): WIP select PuzzleId from dropdown
csboo Dec 9, 2025
6458e0b
merge!(client): backend latest
csboo Dec 9, 2025
8056a16
feat(client): support latest api, auth state cookie, logs
csboo Dec 10, 2025
e79c87f
fix(client): score_table De Morgan ;D
csboo Dec 10, 2025
c53c819
feat(client): team status indicator, dynamic dropdown
csboo Dec 10, 2025
d89b6ae
feat(client): ui update, better code
csboo Dec 11, 2025
bad0ab4
refactor(client): sparate everything into crates at last
csboo Dec 12, 2025
52a7432
misc(makefile): quote help
jarjk Dec 12, 2025
ae0a12e
Merge branch 'backend' into client
csboo Dec 12, 2025
2695f7b
feat(client): support logout logic
csboo Dec 12, 2025
d7ad2ab
misc(client): use native html select instead of dioxus'
csboo Dec 12, 2025
a436f21
misc(client): wait for server to set the state (revert)
csboo Dec 12, 2025
9ca3e8d
fix(client): dont allow empty names + small code improvments
csboo Dec 12, 2025
f1d7c5e
Merge branch 'backend' into client
csboo Dec 12, 2025
f09d982
misc(client): proper handler + stlye for logout button
csboo Dec 13, 2025
ca7ef44
fix(client): use proper cursors
csboo Dec 13, 2025
7c4c2a2
fix(client): simpler admincheck, dropdown initial data
csboo Dec 13, 2025
c9f476e
fix(client): enable desktop build
jarjk Dec 13, 2025
252f945
chore(client): remove 14 unneded clones
csboo Dec 13, 2025
dfa8b75
fix(client): ui improvments, flex, scrolltable
csboo Dec 13, 2025
77e0921
chore(make): don't include unnecessary web feature for server
jarjk Dec 14, 2025
f09e6eb
fix(client): fix dropdown value selection (proper default value)
csboo Dec 14, 2025
404d547
Merge branch 'backend' into client
jarjk Dec 14, 2025
a805490
chore(make): make bundling easier
jarjk Dec 14, 2025
561db22
misc(backend): tiny communication improvements
jarjk Dec 14, 2025
d3a60ea
misc(backend): tiny communication improvements
jarjk Dec 14, 2025
e11d459
chore(client): fn to sum team's points + use in table order
csboo Dec 15, 2025
f6116b0
feat(client): support wipe logout + alert popups + sparate TeamSection
csboo Dec 15, 2025
764d44d
chore(client): code optimization + separate tailwind consts
csboo Dec 15, 2025
b86dbeb
chore(assets): add proper favicon, thanks to @xoudoesthings, delete d…
jarjk Dec 15, 2025
b9222a1
misc(client): totally unneeded css flash on buttons
csboo Dec 15, 2025
ef34c70
Merge branch 'backend' into client
jarjk Dec 16, 2025
8c4cece
fix(client): validate values before sending
csboo Dec 16, 2025
1af562a
feat(client): set admin password when admin join
csboo Dec 16, 2025
b5388ce
misc(client): ui improvment
csboo Dec 16, 2025
8b719c5
Merge branch 'backend' into client (password has to match previous one)
jarjk Dec 16, 2025
b3b2f1c
misc(client): small ui changes
csboo Dec 16, 2025
622614f
fix(client): respect server admin password errors
csboo Dec 16, 2025
bd2f630
chore(make): delete cache, don't bloat, ulimit won't work inside the …
jarjk Dec 16, 2025
5e7993e
chore: add build script and so banner
jarjk Dec 17, 2025
69014e6
chore: cargo features fix
jarjk Dec 19, 2025
7c29c6f
refactor(client): custom toast -> dioxus_primitives::Toast
csboo Dec 20, 2025
d9b33c0
misc(client): css adjustments
csboo Dec 20, 2025
4d953c1
Merge branch 'main' into client
jarjk Jan 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@ edition = "2024"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
csv = "1.4.0"
dioxus-primitives = { git = "https://github.com/DioxusLabs/components", version = "0.0.1", default-features = false }
gloo-timers = { version = "0.3.0", features = ["futures"], optional = true }
chacha20poly1305 = { version = "0.10.1", optional = true }
ciborium = { version = "0.2.2", optional = true }
dioxus = { version = "0.7.3", features = ["fullstack"] }
Expand All @@ -22,8 +25,9 @@ uuid = { version = "1.19.0", features = ["v4", "serde"], optional = true }
zeroize = { version = "1.8.2", optional = true }

[features]
default = []
web = ["dioxus/web"]
default = ["web"]
web = ["dioxus/web", "dep:gloo-timers"]
desktop = ["dioxus/desktop", "dep:tokio"]
# desktop = ["dioxus/desktop"]
# mobile = ["dioxus/mobile"]
server = [
Expand Down
22 changes: 19 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,31 @@ serve-no-state:
build:
dx bundle ${dx-args}

bundle:
web-bundle:
-rm -r web-apollo.zip target/dx # would bloat otherwise
dx bundle --release ${dx-args}
cp -r target/dx/apollo/release/web/public .
-rm web-apollo.zip
zip web-apollo public/* public/assets/*
rm -r public
unzip -l web-apollo.zip

server-build:
@echo 'probably `ulimit -n 1024`' # needed on my mac for sure
cargo zigbuild --release --target x86_64-unknown-linux-gnu --no-default-features --features server_state_save,web
cp target/x86_64-unknown-linux-gnu/release/apollo apollo-x86_64-linux-gnu

bundle: web-bundle server-build
@echo "scp apollo-x86_64-linux-gnu web-apollo.zip <target>"

clean:
cargo clean

help list:
@echo "*serve*: build, run and reload on changes"
@echo "serve-no-state: build, run and reload on changes, don't save server state"
@echo "build: build in debug mode"
@echo "bundle: build in release mode"
@echo "build: bundle in debug mode"
@echo "web-bundle: bundle the web-client"
@echo "server-build: build in release mode for x64-linux"
@echo "bundle: web-bundle and server-build"
@echo "clean: clean target"
83 changes: 83 additions & 0 deletions assets/dx-components-theme.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
/* This file contains the global styles for the styled dioxus components. You only
* need to import this file once in your project root.
*/
@import url("https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap");

body {
padding: 0;
margin: 20px;
background-color: var(--bg);
color: var(--light1);
font-family: Inter, sans-serif;
font-optical-sizing: auto;
font-style: normal;
font-weight: 400;
}

@media (prefers-color-scheme: dark) {
:root {
--dark: initial;
--light: ;
}
}

@media (prefers-color-scheme: light) {
:root {
--dark: ;
--light: initial;
}
}

:root {
/* Primary colors */
--primary-color: var(--dark, #000) var(--light, #fff);
--primary-color-1: var(--dark, #0e0e0e) var(--light, #fbfbfb);
--primary-color-2: var(--dark, #0a0a0a) var(--light, #fff);
--primary-color-3: var(--dark, #141313) var(--light, #f8f8f8);
--primary-color-4: var(--dark, #1a1a1a) var(--light, #f8f8f8);
--primary-color-5: var(--dark, #262626) var(--light, #f5f5f5);
--primary-color-6: var(--dark, #232323) var(--light, #e5e5e5);
--primary-color-7: var(--dark, #3e3e3e) var(--light, #b0b0b0);

/* Secondary colors */
--secondary-color: var(--dark, #fff) var(--light, #000);
--secondary-color-1: var(--dark, #fafafa) var(--light, #000);
--secondary-color-2: var(--dark, #e6e6e6) var(--light, #0d0d0d);
--secondary-color-3: var(--dark, #dcdcdc) var(--light, #2b2b2b);
--secondary-color-4: var(--dark, #d4d4d4) var(--light, #111);
--secondary-color-5: var(--dark, #a1a1a1) var(--light, #848484);
--secondary-color-6: var(--dark, #5d5d5d) var(--light, #d0d0d0);

/* Highlight colors */
--focused-border-color: var(--dark, #2b7fff) var(--light, #2b7fff);
--primary-success-color: var(--dark, #02271c) var(--light, #ecfdf5);
--secondary-success-color: var(--dark, #b6fae3) var(--light, #10b981);
--primary-warning-color: var(--dark, #342203) var(--light, #fffbeb);
--secondary-warning-color: var(--dark, #feeac7) var(--light, #f59e0b);
--primary-error-color: var(--dark, #a22e2e) var(--light, #dc2626);
--secondary-error-color: var(--dark, #9b1c1c) var(--light, #ef4444);
--contrast-error-color: var(--dark, var(--secondary-color-3))
var(--light, var(--primary-color));
--primary-info-color: var(--dark, var(--primary-color-5))
var(--light, var(--primary-color));
--secondary-info-color: var(--dark, var(--primary-color-7))
var(--light, var(--secondary-color-3));
}

/* Modern browsers with `scrollbar-*` support */
@supports (scrollbar-width: auto) {
:not(:hover) {
scrollbar-color: rgb(0 0 0 / 0%) rgb(0 0 0 / 0%);
}

:hover {
scrollbar-color: var(--secondary-color-2) rgb(0 0 0 / 0%);
}
}

/* Legacy browsers with `::-webkit-scrollbar-*` support */
@supports selector(::-webkit-scrollbar) {
:root::-webkit-scrollbar-track {
background: transparent;
}
}
Binary file modified assets/favicon.ico
Binary file not shown.
Loading
Loading