diff --git a/fall-2025/sen-210/Assessments/Desktop/jobwizarddesktop-js/.gitignore b/fall-2025/sen-210/Assessments/Desktop/jobwizarddesktop-js/.gitignore
new file mode 100644
index 0000000..96901c4
--- /dev/null
+++ b/fall-2025/sen-210/Assessments/Desktop/jobwizarddesktop-js/.gitignore
@@ -0,0 +1 @@
+/subprojects/blueprint-compiler
diff --git a/fall-2025/sen-210/Assessments/Desktop/jobwizarddesktop-js/meson.build b/fall-2025/sen-210/Assessments/Desktop/jobwizarddesktop-js/meson.build
index 2621cc5..06852ac 100644
--- a/fall-2025/sen-210/Assessments/Desktop/jobwizarddesktop-js/meson.build
+++ b/fall-2025/sen-210/Assessments/Desktop/jobwizarddesktop-js/meson.build
@@ -8,8 +8,6 @@ i18n = import('i18n')
gnome = import('gnome')
-
-
subdir('data')
subdir('src')
subdir('po')
diff --git a/fall-2025/sen-210/Assessments/Desktop/jobwizarddesktop-js/po/POTFILES.in b/fall-2025/sen-210/Assessments/Desktop/jobwizarddesktop-js/po/POTFILES.in
index b590f91..c677be7 100644
--- a/fall-2025/sen-210/Assessments/Desktop/jobwizarddesktop-js/po/POTFILES.in
+++ b/fall-2025/sen-210/Assessments/Desktop/jobwizarddesktop-js/po/POTFILES.in
@@ -5,4 +5,4 @@ data/me.winsdominoes.JobWizardDesktop.metainfo.xml.in
data/me.winsdominoes.JobWizardDesktop.gschema.xml
src/main.js
src/window.js
-src/window.ui
+src/window.blp
diff --git a/fall-2025/sen-210/Assessments/Desktop/jobwizarddesktop-js/src/icons/person-symbolic.svg b/fall-2025/sen-210/Assessments/Desktop/jobwizarddesktop-js/src/icons/person-symbolic.svg
new file mode 100644
index 0000000..2210355
--- /dev/null
+++ b/fall-2025/sen-210/Assessments/Desktop/jobwizarddesktop-js/src/icons/person-symbolic.svg
@@ -0,0 +1,2 @@
+
+
diff --git a/fall-2025/sen-210/Assessments/Desktop/jobwizarddesktop-js/src/me.winsdominoes.JobWizardDesktop.data.gresource.xml b/fall-2025/sen-210/Assessments/Desktop/jobwizarddesktop-js/src/me.winsdominoes.JobWizardDesktop.data.gresource.xml
index 9bf9874..78ab9a0 100644
--- a/fall-2025/sen-210/Assessments/Desktop/jobwizarddesktop-js/src/me.winsdominoes.JobWizardDesktop.data.gresource.xml
+++ b/fall-2025/sen-210/Assessments/Desktop/jobwizarddesktop-js/src/me.winsdominoes.JobWizardDesktop.data.gresource.xml
@@ -3,5 +3,6 @@
window.ui
shortcuts-dialog.ui
+ icons/person-symbolic.svg
diff --git a/fall-2025/sen-210/Assessments/Desktop/jobwizarddesktop-js/src/meson.build b/fall-2025/sen-210/Assessments/Desktop/jobwizarddesktop-js/src/meson.build
index 56639f4..02ef618 100644
--- a/fall-2025/sen-210/Assessments/Desktop/jobwizarddesktop-js/src/meson.build
+++ b/fall-2025/sen-210/Assessments/Desktop/jobwizarddesktop-js/src/meson.build
@@ -1,11 +1,20 @@
pkgdatadir = get_option('datadir') / meson.project_name()
gnome = import('gnome')
+blueprints = custom_target('blueprints',
+ input: files(
+ 'window.blp',
+ 'shortcuts-dialog.blp',
+ ),
+ output: '.',
+ command: [find_program('blueprint-compiler'), 'batch-compile', '@OUTPUT@', '@CURRENT_SOURCE_DIR@', '@INPUT@'],
+)
src_res = gnome.compile_resources('me.winsdominoes.JobWizardDesktop.src',
'me.winsdominoes.JobWizardDesktop.src.gresource.xml',
gresource_bundle: true,
install: true,
install_dir: pkgdatadir,
+ dependencies: blueprints,
)
data_res = gnome.compile_resources('me.winsdominoes.JobWizardDesktop.data',
@@ -13,6 +22,7 @@ data_res = gnome.compile_resources('me.winsdominoes.JobWizardDesktop.data',
gresource_bundle: true,
install: true,
install_dir: pkgdatadir,
+ dependencies: blueprints,
)
bin_conf = configuration_data()
@@ -31,3 +41,5 @@ configure_file(
install: true,
install_dir: get_option('bindir')
)
+
+
diff --git a/fall-2025/sen-210/Assessments/Desktop/jobwizarddesktop-js/src/shortcuts-dialog.blp b/fall-2025/sen-210/Assessments/Desktop/jobwizarddesktop-js/src/shortcuts-dialog.blp
new file mode 100644
index 0000000..74765b0
--- /dev/null
+++ b/fall-2025/sen-210/Assessments/Desktop/jobwizarddesktop-js/src/shortcuts-dialog.blp
@@ -0,0 +1,17 @@
+using Gtk 4.0;
+
+$AdwShortcutsDialog shortcuts_dialog {
+ $AdwShortcutsSection {
+ title: _("Shortcuts");
+
+ $AdwShortcutsItem {
+ title: C_("shortcut window", "Show Shortcuts");
+ action-name: "app.shortcuts";
+ }
+
+ $AdwShortcutsItem {
+ title: C_("shortcut window", "Quit");
+ action-name: "app.quit";
+ }
+ }
+}
diff --git a/fall-2025/sen-210/Assessments/Desktop/jobwizarddesktop-js/src/window.blp b/fall-2025/sen-210/Assessments/Desktop/jobwizarddesktop-js/src/window.blp
new file mode 100644
index 0000000..30ac632
--- /dev/null
+++ b/fall-2025/sen-210/Assessments/Desktop/jobwizarddesktop-js/src/window.blp
@@ -0,0 +1,79 @@
+using Gtk 4.0;
+using Adw 1;
+
+template $JobwizarddesktopJsWindow: $AdwApplicationWindow {
+ title: _("JobWizard Desktop Edition");
+ default-width: "800";
+ default-height: "600";
+
+ content: $AdwToolbarView {
+ [top]
+ $AdwHeaderBar {
+ [end]
+ MenuButton {
+ primary: true;
+ icon-name: "open-menu-symbolic";
+ tooltip-text: _("Main Menu");
+ menu-model: primary_menu;
+ }
+ }
+
+
+ content: Adw.StatusPage {
+ title: "JobWizard Desktop Edition";
+ description: "Let's get started!";
+ // Try using a custom icon instead of cafe-symbolic
+ icon-name: "person-symbolic";
+
+ Adw.Clamp main {
+ Box {
+ halign: center;
+ orientation: vertical;
+
+ Label {
+ label: _("Login");
+ halign: start;
+
+ styles [
+ "heading",
+ ]
+ }
+
+ Entry entry_completion {
+ max-width-chars: 100;
+ // margin-bottom: 8;
+ placeholder-text: "Enter email";
+ }
+
+ Button suggested {
+ name: "login_button";
+ label: _("Login");
+
+ styles [
+ "suggested-action",
+ ]
+ }
+ }
+ }
+ };
+ };
+}
+
+menu primary_menu {
+ section {
+ item {
+ label: _("_Preferences");
+ action: "app.preferences";
+ }
+
+ item {
+ label: _("_Keyboard Shortcuts");
+ action: "app.shortcuts";
+ }
+
+ item {
+ label: _("_About Jobwizarddesktop-js");
+ action: "app.about";
+ }
+ }
+}
diff --git a/fall-2025/sen-210/Assessments/Desktop/jobwizarddesktop-js/subprojects/blueprint-compiler.wrap b/fall-2025/sen-210/Assessments/Desktop/jobwizarddesktop-js/subprojects/blueprint-compiler.wrap
new file mode 100644
index 0000000..3dd8dee
--- /dev/null
+++ b/fall-2025/sen-210/Assessments/Desktop/jobwizarddesktop-js/subprojects/blueprint-compiler.wrap
@@ -0,0 +1,8 @@
+[wrap-git]
+directory = blueprint-compiler
+url = https://gitlab.gnome.org/GNOME/blueprint-compiler.git
+revision = v0.18.0
+depth = 1
+
+[provide]
+program_names = blueprint-compiler
\ No newline at end of file