diff --git a/app/assets/images/100_x_500_logo.png b/app/assets/images/100_x_500_logo.png new file mode 100644 index 0000000..317dd46 Binary files /dev/null and b/app/assets/images/100_x_500_logo.png differ diff --git a/app/assets/images/500_x_500_-_banner.png b/app/assets/images/500_x_500_-_banner.png new file mode 100644 index 0000000..8b6f127 Binary files /dev/null and b/app/assets/images/500_x_500_-_banner.png differ diff --git a/app/assets/images/Favicon-Main.png b/app/assets/images/Favicon-Main.png index eaeb0f0..f2d62ca 100644 Binary files a/app/assets/images/Favicon-Main.png and b/app/assets/images/Favicon-Main.png differ diff --git a/app/assets/images/Favicon-Main.svg b/app/assets/images/Favicon-Main.svg deleted file mode 100644 index a173609..0000000 --- a/app/assets/images/Favicon-Main.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/app/assets/images/Logo-Main.svg b/app/assets/images/Logo-Main.svg deleted file mode 100644 index 49daab1..0000000 --- a/app/assets/images/Logo-Main.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/app/assets/images/Logo-Monochrome.svg b/app/assets/images/Logo-Monochrome.svg deleted file mode 100644 index 4a245c5..0000000 --- a/app/assets/images/Logo-Monochrome.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/app/assets/images/android-chrome-192x192.png b/app/assets/images/android-chrome-192x192.png index 2d34fb8..0e9f16e 100644 Binary files a/app/assets/images/android-chrome-192x192.png and b/app/assets/images/android-chrome-192x192.png differ diff --git a/app/assets/images/android-chrome-512x512.png b/app/assets/images/android-chrome-512x512.png index 3d7dd33..f2d62ca 100644 Binary files a/app/assets/images/android-chrome-512x512.png and b/app/assets/images/android-chrome-512x512.png differ diff --git a/app/assets/images/apple-touch-icon.png b/app/assets/images/apple-touch-icon.png index b1a5198..a7e685b 100644 Binary files a/app/assets/images/apple-touch-icon.png and b/app/assets/images/apple-touch-icon.png differ diff --git a/app/assets/images/banner.png b/app/assets/images/banner.png new file mode 100644 index 0000000..8b6f127 Binary files /dev/null and b/app/assets/images/banner.png differ diff --git a/app/assets/images/banner_2.png b/app/assets/images/banner_2.png new file mode 100644 index 0000000..cc01478 Binary files /dev/null and b/app/assets/images/banner_2.png differ diff --git a/app/assets/images/favicon-16x16.png b/app/assets/images/favicon-16x16.png index 6d92ea7..140037d 100644 Binary files a/app/assets/images/favicon-16x16.png and b/app/assets/images/favicon-16x16.png differ diff --git a/app/assets/images/favicon-32x32.png b/app/assets/images/favicon-32x32.png index 2c8459e..1a0b53e 100644 Binary files a/app/assets/images/favicon-32x32.png and b/app/assets/images/favicon-32x32.png differ diff --git a/app/assets/images/favicon.ico b/app/assets/images/favicon.ico index 140e4b9..1a0b53e 100644 Binary files a/app/assets/images/favicon.ico and b/app/assets/images/favicon.ico differ diff --git a/app/assets/images/icon_256.png b/app/assets/images/icon_256.png new file mode 100644 index 0000000..70a19f4 Binary files /dev/null and b/app/assets/images/icon_256.png differ diff --git a/app/assets/images/partners/AcademicCity.png b/app/assets/images/partners/AcademicCity.png deleted file mode 100644 index aae5b03..0000000 Binary files a/app/assets/images/partners/AcademicCity.png and /dev/null differ diff --git a/app/assets/images/partners/CodenCocktails.png b/app/assets/images/partners/CodenCocktails.png deleted file mode 100644 index 5454bb6..0000000 Binary files a/app/assets/images/partners/CodenCocktails.png and /dev/null differ diff --git a/app/assets/images/partners/GamerzHive.png b/app/assets/images/partners/GamerzHive.png deleted file mode 100644 index c59c716..0000000 Binary files a/app/assets/images/partners/GamerzHive.png and /dev/null differ diff --git a/app/assets/images/partners/devCongress.png b/app/assets/images/partners/devCongress.png deleted file mode 100644 index 99904c7..0000000 Binary files a/app/assets/images/partners/devCongress.png and /dev/null differ diff --git a/app/assets/images/partners/dev_congress.png b/app/assets/images/partners/dev_congress.png new file mode 100644 index 0000000..13023ac Binary files /dev/null and b/app/assets/images/partners/dev_congress.png differ diff --git a/app/assets/images/partners/kwekuTech.png b/app/assets/images/partners/kwekuTech.png deleted file mode 100644 index fe8e463..0000000 Binary files a/app/assets/images/partners/kwekuTech.png and /dev/null differ diff --git a/app/assets/images/partners/mest_africa.png b/app/assets/images/partners/mest_africa.png new file mode 100644 index 0000000..98a5da4 Binary files /dev/null and b/app/assets/images/partners/mest_africa.png differ diff --git a/app/assets/images/partners/slightlyTechie.png b/app/assets/images/partners/slightlyTechie.png deleted file mode 100644 index cfa0eb7..0000000 Binary files a/app/assets/images/partners/slightlyTechie.png and /dev/null differ diff --git a/app/assets/images/partners/unicef_gh.png b/app/assets/images/partners/unicef_gh.png new file mode 100644 index 0000000..75c34f9 Binary files /dev/null and b/app/assets/images/partners/unicef_gh.png differ diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index eb1e51e..ee508d5 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -29,6 +29,6 @@ def description_for(name) end def event_duration - "March 28-30, 2025" + "November 12-14, 2025" end end diff --git a/app/rodauth/hacker_rodauth_plugin.rb b/app/rodauth/hacker_rodauth_plugin.rb index a3e026d..49d7648 100644 --- a/app/rodauth/hacker_rodauth_plugin.rb +++ b/app/rodauth/hacker_rodauth_plugin.rb @@ -15,6 +15,7 @@ class HackerRodauthPlugin < RodauthPlugin enable( :omniauth, :login, + :create_account, :remember, :logout, :case_insensitive_login, diff --git a/app/views/homepage/about.html.erb b/app/views/homepage/about.html.erb index 9fc9e5f..715966d 100644 --- a/app/views/homepage/about.html.erb +++ b/app/views/homepage/about.html.erb @@ -1,177 +1,436 @@ -<%= content_for :title, "About Us | UNICEF StartUp Lab Hack" %> +<%= content_for :title, "AI for Inclusive Learning | UNICEF StartUp Lab Hackathon 2025" %> + +
+ +
+

+ AI for Inclusive Learning +

+

Transform Education. Empower Voices. Build the Future.

+

UNICEF StartUp Lab Hackathon 2025

+
-
-
+
-
+
-

Date

-

<%= event_duration %>

-

Friday evening through Sunday afternoon

- - +

Hackathon Dates

+

November 12-14, 2025

+

3-day intensive hackathon

- -
+ +
- - +
-

Location

-

- - Academic City Campus - -

+

Team Requirements

+

2-4 members per team

+

Diverse backgrounds encouraged

- -
+ +
-

Duration

-

36 hours of innovation

-

Friday 7 PM – Sunday 2 PM

+

Registration

+

Team Registration Opens: October 6th

+

Team Formation Closes: November 11th

- -
+ +
- + +
-

Team Size

-

3-5 members per team

+

Location

+

Ghana (Venue TBD)

+

Details coming soon

+
- -
-
- - - -
-

Prize Pool

-
-
- 🥇 -

First Place

-

GHS 15,000

+ +
+
+

$15,000 Prize Pool

+
+
+

Plus incubation support, funding access, and mentorship from UNICEF and MEST Africa

+
+

Beyond Prizes

+
+
+
+ + +
-
- 🥈 -

Second Place

-

GHS 10,000

+

Incubation Programs

+
+
+
+ + +
-
- 🥉 -

Third Place

-

GHS 5,000

+

UNICEF Mentorship

+
+
+
+ + +
+

Pilot Implementation

- -
-

What to Expect

-
-

- Join us for an intensive 36-hour hackathon where you'll collaborate with fellow innovators to create cutting-edge solutions in fintech. Whether you're a seasoned developer or just starting your coding journey, UNICEF StartUp Lab Hack provides the perfect platform to showcase your skills and learn from industry experts. -

-

- Throughout the event, you'll have access to mentors, technical workshops, and API integration support. Work alongside like-minded individuals, receive guidance from experienced professionals, and compete for exciting prizes worth GHS 30,000 in total! + +

+

The Challenge That Matters

+
+
+

+ Over the past three decades, Ghana has made significant progress in expanding access to education. More children are in school today than ever before. But some groups of learners are still being left behind—particularly children with hearing impairments and speech difficulties. +

+

+ For these children, sign language is not optional—it is their primary way of communicating and learning. Yet until recently, schools across Ghana used different signs depending on their community or teacher. This lack of consistency created barriers for deaf learners and made it harder for them to progress in education. +

+

+ To address this, the Ghana National Association of the Deaf (GNAD) along with UNICEF and other key stakeholders developed the Harmonized Ghanaian Sign Language Dictionary, a groundbreaking resource that brings uniformity and recognition to Ghanaian Sign Language. +

+
+

The Problem:

+

This dictionary exists mainly in print. It is static, difficult to use widely, and not yet integrated into classrooms, digital platforms, or assistive technologies.

+
+
+
+ +
+

Your Mission

+

+ Harness the power of AI and assistive technologies to bridge this communication gap and create truly inclusive learning environments.

- -
- -
- - - -
-

Learning & Growth

-
    -
  • Technical workshops
  • -
  • Mentorship from industry professionals
  • -
  • Networking opportunities with peers and experts
  • -
+ +
+

Solution Requirements

+
+
+
+
+ + + +
+

Accessible

+
+

Available to learners regardless of socio-economic background

+
+ +
+
+
+ + + +
+

User-Friendly

+
+

Designed for varying technical skill levels

+
+ +
+
+
+ + + +
+

Accurate

+
+

Precise in interpreting Ghanaian Sign Language

+
+ +
+
+
+ + + +
+

Scalable

+
+

Ready for nationwide implementation

+
+ +
+
+
+ + + +
+

Sustainable

+
+

Cost-effective for long-term deployment

+
+ +
+
+
+ + + +
+

Culturally Sensitive

+
+

Respectful of Ghanaian learning environments

+
- -
- - - -
-

Prizes & Recognition

-
    -
  • GHS 30,000 total prize pool
  • -
  • SWAG for all participants
  • -
  • Opportunity to showcase your solution to industry leaders
  • -
  • Potential for continued mentorship after the event
  • -
+ +
+

Who Should Apply?

+

We're looking for diverse teams of 2-4 that combine:

+
+
+
+ + + +
+

Technical Excellence

+

Developers, data scientists, AI specialists

+
+ +
+
+ + + +
+

Design Innovation

+

UI/UX designers who understand accessibility

+
+ +
+
+ + + +
+

Domain Expertise

+

Educators, linguists, special education advocates

+
+ +
+
+ + + +
+

Diverse Perspectives

+

Varied backgrounds and geographic representation

+
+
+
+ + +
+

Key Dates - Mark Your Calendar

+
+
+
+ Oct 6 +
+
+

Hack Launch & Team Registration Opens

+

Start forming your team

+
+ +
+
+ Oct-Nov +
+
+

Info Sessions & Workshops

+

October 14, 20, 27 • November 3, 10

+
+
+ +
+
+ Nov 11 +
+
+

Team Formation Closes & Problem Statement Released

+

Final teams confirmed

+
+
+ +
+
+ Nov 12 +
+
+

Hack Starts

+

Intensive development, mentorship, and presentations

+
+
+
+
+ Nov 14 +
+
+

Hack Ends, Finalists Announced and Awarded

+

Projects validated, judged and prizes awarded

+
+
+
+ + +
+ +
+ +
+

Partnership Power

+

This hackathon brings together the expertise of:

+ +
+ <% partners = [ + { + name: "MEST Africa", + logo: "mest_africa", + description: "Building Africa’s Next Generation of Tech Entrepreneurs", + website: "https://meltwater.org", + }, + { + name: "UNICEF Ghana", + logo: "unicef_gh", + description: "For Every Child", + website: "https://www.unicef.org/ghana/", + }, + { + name: "DevCongress", + logo: "dev_congress", + description: + "Ghana's largest developer community supporting tech initiatives", + website: "https://devcongress.org", + }, + ] %> + + <% partners.each do |partner| %> +
+ +
+ <%= image_tag "partners/#{partner[:logo]}.png", + class: + "h-full w-auto object-contain grayscale group-hover:grayscale-0 transition-all duration-300", + alt: "#{partner[:name]} logo" %> +
+ +
+

+ <%= partner[:name] %> +

+

+ <%= partner[:description] %> +

+ + <%= link_to partner[:website], target: :blank, + class: "mt-4 inline-flex items-center text-sm font-medium text-primary-600 hover:text-primary-700" do %> + Visit website + + + + <% end %> +
+
+ <% end %> +
+
+ + -
-

Ready to Make Your Mark?

-
- <%= link_to "Register Your Team", +
+

Ready to Build the Future?

+

+ This is more than a hackathon. It's your chance to create technology that opens doors, amplifies voices, and transforms education for thousands of children in Ghana. +

+

+ The code you write here changes lives. +

+
+ <%= link_to "Apply Now with Your Team", rodauth(:hacker).create_account_path, - class: "group w-64 sm:w-auto rounded-xl bg-gradient-to-r from-primary-600 to-primary-500 px-6 py-4 text-lg font-semibold text-white shadow-md transition-all duration-300 ease-out hover:translate-y-[-2px] hover:shadow-lg focus:outline-none focus:ring-2 focus:ring-primary-500 focus:ring-offset-2" %> + class: "group bg-white text-primary-600 rounded-xl px-8 py-4 text-lg font-semibold shadow-lg transition-all duration-300 ease-out hover:translate-y-[-2px] hover:shadow-xl focus:outline-none focus:ring-2 focus:ring-white focus:ring-offset-2 focus:ring-offset-primary-600" %>
+

+ Your team. Your skills. Ghana's future. +

diff --git a/app/views/homepage/contact.html.erb b/app/views/homepage/contact.html.erb index b554eef..6b5308a 100644 --- a/app/views/homepage/contact.html.erb +++ b/app/views/homepage/contact.html.erb @@ -21,21 +21,13 @@ @DevCongress - - - - - - DevCongress - - - - - + + - @DevCongress + hack25@DevCongress.io
@@ -89,20 +81,12 @@ @DevCongress - - - + + - DevCongress - - - - - - - @DevCongress + hack25@DevCongress.io
diff --git a/app/views/homepage/index.html.erb b/app/views/homepage/index.html.erb index adc660e..daea3ab 100644 --- a/app/views/homepage/index.html.erb +++ b/app/views/homepage/index.html.erb @@ -8,8 +8,7 @@ " > Join us - <%= event_duration %> - at Academic City Campus + <%= event_duration %> Learn more @@ -25,7 +24,7 @@ >
- <%= image_tag "neural-network.png", class: "w-64 inline-block", alt: "Event Logo" %> + <%= image_tag "banner_2.png", class: "w-128 inline-block", alt: "Event Logo" %>
- Imagining the Future of Finance with AI + Transform Education. Empower Voices. Build the Future
@@ -56,7 +55,7 @@
- ₵30k+ + $15,000
in Prizes
@@ -149,43 +148,24 @@
<% partners = [ { - name: "Academic City", - logo: "AcademicCity", - description: - "Premier technology university fostering innovation and entrepreneurship", - website: "https://acity.edu.gh", + name: "MEST Africa", + logo: "mest_africa", + description: "Building Africa’s Next Generation of Tech Entrepreneurs", + website: "https://meltwater.org", }, { - name: "Code & Cocktails", - logo: "CodenCocktails", - description: "Community-driven tech events bringing developers together", - website: "https://codeandcocktails.live/", + name: "UNICEF Ghana", + logo: "unicef_gh", + description: "For Every Child", + website: "https://www.unicef.org/ghana/", }, { - name: "devCongress", - logo: "devCongress", + name: "DevCongress", + logo: "dev_congress", description: "Ghana's largest developer community supporting tech initiatives", website: "https://devcongress.org", }, - { - name: "Kweku Tech", - logo: "kwekuTech", - description: "Leading tech education and consulting platform", - website: "https://x.com/kwekutech", - }, - { - name: "Slightly Techie", - logo: "slightlyTechie", - description: "Innovation hub dedicated to growing tech talent", - website: "https://slightlytechie.com", - }, - { - name: "GamerzHive", - logo: "GamerzHive", - description: "The Ultimate Gaming Ecosystem", - website: "https://www.gamerzhive.com/", - }, ] %> <% partners.each do |partner| %> @@ -241,81 +221,4 @@
- -
-
- -
-

- Our Sponsors -

-

- Supported by visionary sponsors committed to driving fintech - innovation forward. -

-
- -
- <% sponsors = [ - { - name: "Consolidated Bank Ghana Ltd.", - logo: "CBG", - description: "Your gateway to simple, secure, and unique Banking", - website: "", - }, - ] %> - - <% sponsors.each do |sponsor| %> -
- -
- <%= image_tag "sponsors/#{sponsor[:logo]}.png", - class: - "h-full w-auto object-contain grayscale group-hover:grayscale-0 transition-all duration-300", - alt: "#{sponsor[:name]} logo" %> -
- -
-

- <%= sponsor[:name] %> -

-

- <%= sponsor[:description] %> -

- - <%= link_to sponsor[:website], target: :blank, - class: "mt-4 inline-flex items-center text-sm font-medium text-primary-600 hover:text-primary-700" do %> - Visit website - - - - <% end %> -
-
- <% end %> -
- -
-

- Interested in becoming a sponsor? -

-

- Join us in shaping the future of finance technology in Africa -

- <%= link_to "Contact Us About Sponsorship", - contact_path, - class: - "mt-4 inline-flex items-center rounded-lg border border-primary-600 px-4 py-2 text-sm font-medium text-primary-600 hover:bg-primary-50 transition-colors duration-200" %> -
-
-
diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index a5f65a5..83eba94 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -142,7 +142,7 @@ group-hover:to-primary-700 transition-all " > - <%= image_tag "neural-network.png", class: "w-8" %> + <%= image_tag "icon_256.png", class: "w-8" %>
@@ -388,7 +388,7 @@

- © 2025 DevCnogress. All rights reserved. + © 2025 DevCongress. All rights reserved.

diff --git a/app/views/rodauth/hacker/create_account.html.erb b/app/views/rodauth/hacker/create_account.html.erb index 17165a9..89841f0 100644 --- a/app/views/rodauth/hacker/create_account.html.erb +++ b/app/views/rodauth/hacker/create_account.html.erb @@ -1,4 +1,3 @@ -<%= render "omniauth_links", type: "signup" %>

- <% if params[:token].present? %> -
- -
- <% end %> -
- <%= form.label "login", - rodauth(:hacker).login_label, - class: - "block mb-2 text-sm font-semibold text-gray-900 dark:text-white" %> - <%= form.email_field rodauth(:hacker).login_param, - value: params[rodauth(:hacker).login_param], - id: "login", - autocomplete: "email", - required: true, - placeholder: "jane@acme.inc", - class: - "bg-gray-50 border border-gray-300 text-gray-900 rounded-lg focus:ring-primary-600 focus:border-primary-600 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-primary-500 dark:focus:border-primary-500 #{rodauth(:hacker).field_error(rodauth(:hacker).login_param) ? "border-red-600 focus:ring-red-600 focus:border-red-600 dark:border-red-400 dark:focus:ring-red-400" : "border-gray-300 dark:border-gray-700 dark:focus:border-emerald-400 dark:focus:ring-emerald-400"}", - aria: - ( - if rodauth(:hacker).field_error( - rodauth(:hacker).login_param, - ) - { invalid: true, describedby: "login_error_message" } - end - ) %> - <%= if rodauth(:hacker).field_error(rodauth(:hacker).login_param) - content_tag( - :span, - rodauth(:hacker).field_error(rodauth(:hacker).login_param), - class: "block mt-1 text-red-600 text-sm dark:text-red-400", - id: "login_error_message", - ) - end %> -
- <% if rodauth(:hacker).require_login_confirmation? %> -
- <%= form.label "login-confirm", - rodauth(:hacker).login_confirm_label, - class: - "block mb-2 text-sm font-semibold text-gray-900 dark:text-white" %> - <%= form.email_field rodauth(:hacker).login_confirm_param, - value: params[rodauth(:hacker).login_confirm_param], - id: "login-confirm", - autocomplete: "email", - required: true, - placeholder: "jane@acme.inc", - class: - "bg-gray-50 border border-gray-300 text-gray-900 rounded-lg focus:ring-primary-600 focus:border-primary-600 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-primary-500 dark:focus:border-primary-500 #{rodauth(:hacker).field_error(rodauth(:hacker).login_confirm_param) ? "border-red-600 focus:ring-red-600 focus:border-red-600 dark:border-red-400 dark:focus:ring-red-400" : "border-gray-300 dark:border-gray-700 dark:focus:border-emerald-400 dark:focus:ring-emerald-400"}", - aria: - ( - if rodauth(:hacker).field_error( - rodauth(:hacker).login_confirm_param, - ) - { - invalid: true, - describedby: "login-confirm_error_message", - } - end - ) %> - <%= if rodauth(:hacker).field_error(rodauth(:hacker).login_confirm_param) - content_tag( - :span, - rodauth(:hacker).field_error(rodauth(:hacker).login_confirm_param), - class: "block mt-1 text-red-600 text-sm dark:text-red-400", - id: "login-confirm_error_message", - ) - end %> -
- <% end %> - <% if rodauth(:hacker).create_account_set_password? %> -
- <%= form.label "password", - rodauth(:hacker).password_label, - class: - "block mb-2 text-sm font-semibold text-gray-900 dark:text-white" %> - <%= form.password_field rodauth(:hacker).password_param, - value: "", - id: "password", - autocomplete: - rodauth(:hacker).password_field_autocomplete_value, - required: true, - class: - "bg-gray-50 border border-gray-300 text-gray-900 rounded-lg focus:ring-primary-600 focus:border-primary-600 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-primary-500 dark:focus:border-primary-500 #{rodauth(:hacker).field_error(rodauth(:hacker).password_param) ? "border-red-600 focus:ring-red-600 focus:border-red-600 dark:border-red-400 dark:focus:ring-red-400" : "border-gray-300 dark:border-gray-700 dark:focus:border-emerald-400 dark:focus:ring-emerald-400"}", - aria: - ( - if rodauth(:hacker).field_error( - rodauth(:hacker).password_param, - ) - { - invalid: true, - describedby: "password_error_message", - } - end - ) %> - <%= if rodauth(:hacker).field_error(rodauth(:hacker).password_param) - content_tag( - :span, - rodauth(:hacker).field_error(rodauth(:hacker).password_param), - class: "block mt-1 text-red-600 text-sm dark:text-red-400", - id: "password_error_message", - ) - end %> -
- <% if rodauth(:hacker).require_password_confirmation? %> -
- <%= form.label "password-confirm", - rodauth(:hacker).password_confirm_label, - class: - "block mb-2 text-sm font-semibold text-gray-900 dark:text-white" %> - <%= form.password_field rodauth(:hacker).password_confirm_param, - value: "", - id: "password-confirm", - autocomplete: "new-password", - required: true, - class: - "bg-gray-50 border border-gray-300 text-gray-900 rounded-lg focus:ring-primary-600 focus:border-primary-600 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-primary-500 dark:focus:border-primary-500 #{rodauth(:hacker).field_error(rodauth(:hacker).password_confirm_param) ? "border-red-600 focus:ring-red-600 focus:border-red-600 dark:border-red-400 dark:focus:ring-red-400" : "border-gray-300 dark:border-gray-700 dark:focus:border-emerald-400 dark:focus:ring-emerald-400"}", - aria: - ( - if rodauth(:hacker).field_error( - rodauth(:hacker).password_confirm_param, - ) - { - invalid: true, - describedby: "password-confirm_error_message", - } - end - ) %> - <%= if rodauth(:hacker).field_error(rodauth(:hacker).password_confirm_param) - content_tag( - :span, - rodauth(:hacker).field_error(rodauth(:hacker).password_confirm_param), - class: "block mt-1 text-red-600 text-sm dark:text-red-400", - id: "password-confirm_error_message", - ) - end %> -
- <% end %> - <% end %> - <%= form.submit rodauth(:hacker).create_account_button, - class: - "w-full text-white bg-primary-600 hover:bg-primary-700 focus:ring-4 focus:outline-none focus:ring-primary-300 font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:bg-primary-600 dark:hover:bg-primary-700 dark:focus:ring-primary-800" %> -<% end %> + +<%= render "omniauth_links", type: "signup" %> + +

Already have an account? <%= link_to "Login", diff --git a/config/initializers/plutonium.rb b/config/initializers/plutonium.rb index 9958c82..286fdd7 100644 --- a/config/initializers/plutonium.rb +++ b/config/initializers/plutonium.rb @@ -5,7 +5,7 @@ config.assets.stylesheet = "application" config.assets.script = "application" - config.assets.logo = "neural-network.png" + config.assets.logo = "icon_256.png" config.assets.favicon = "favicon.ico" # Configure plutonium above. end diff --git a/config/routes.rb b/config/routes.rb index 373c5ce..3d0dd9d 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -4,7 +4,8 @@ get "up" => "rails/health#show", :as => :rails_health_check # resources :homepage, only: [:index] - root to: redirect("/hacker/login") + root "homepage#index" + get "/about", to: "homepage#about" get "/contact", to: "homepage#contact" diff --git a/tailwind.config.js b/tailwind.config.js index 70b28a8..6ac4fdf 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -8,7 +8,7 @@ module.exports = { plugins: [ // add plugins here ].concat( - plutoniumTailwindConfig.plugins.map(function (plugin) { + plutoniumTailwindConfig.plugins.map(function(plugin) { switch (typeof plugin) { case "function": return tailwindPlugin(plugin); @@ -23,17 +23,17 @@ module.exports = { extend: { colors: { primary: { - 50: "#E8F5E9", // Lightest shade for subtle backgrounds - 100: "#C8E6C9", // Light shade for secondary elements - 200: "#A5D6A7", // Light shade for accents - 300: "#81C784", // Mid-light shade for buttons or icons - 400: "#66BB6A", // Mid shade for primary actions - 500: "#4CAF50", // Base green for primary elements - 600: "#43A047", // Slightly darker for hover states - 700: "#388E3C", // Darker shade for active states - 800: "#2E7D32", // Dark shade for text or strong accents - 900: "#1B5E20", // Darkest shade for high-contrast text - 950: "#0D3B10", // Very dark for backgrounds or large text + 50: "#E0F7FE", // Lightest shade for subtle backgrounds + 100: "#B3ECFD", // Light shade for secondary elements + 200: "#80DFFC", // Light shade for accents + 300: "#4DD2FB", // Mid-light shade for buttons or icons + 400: "#26C8FA", // Mid shade for hover states + 500: "#00AEEF", // Base cyan for primary elements + 600: "#009DD6", // Slightly darker for active states + 700: "#0089BC", // Darker shade for pressed states + 800: "#0075A3", // Dark shade for text or strong accents + 900: "#005A7D", // Darkest shade for high-contrast text + 950: "#003D54", // Very dark for backgrounds or large text }, }, }, diff --git a/test/controllers/homepage_controller_test.rb b/test/controllers/homepage_controller_test.rb index c14fff1..c0604ac 100644 --- a/test/controllers/homepage_controller_test.rb +++ b/test/controllers/homepage_controller_test.rb @@ -3,6 +3,6 @@ class HomepageControllerTest < ActionDispatch::IntegrationTest test "should get index" do get root_path - assert_redirected_to '/hacker/login' + assert_response :success end end