Commit Graph

231 Commits

Author SHA1 Message Date
popovskik efb3c6ea39 Fix mobile nav/TOC/overflow on article pages + harden membership form
Mobile fixes (article, guide, get-to-know, projects pages):
- Remove duplicate main.js include site-wide. footer.js emitted a
  <script src=main.js> inside the footer block while pages also load one
  before </body>, so DOMContentLoaded ran twice and every tap toggled the
  mobile menu / article TOC twice (net no-op). Menu and TOC only worked on
  the homepage. Now exactly one main.js per page, before </body>.
- Kill horizontal overflow: add overflow-x: clip to html/body (clips the
  off-canvas mobile nav panel without breaking position: sticky, unlike
  overflow-x: hidden).
- Reset align-items to stretch in the mobile .article-layout-container
  rule; the desktop flex-start made .article-container size to max-content
  width in a column flexbox and overflow the viewport.

Membership form hardening (Become a Member):
- Honeypot field + localStorage cooldown (30s gap, max 3/24h) + stronger
  email regex; trilingual cooldown alert message.
- Apps Script (setup doc): per-email auto-reply dedupe + daily send cap;
  applicant reply is a plain thank-you that never echoes submitted answers.
- Draft HTML welcome email (email-welcome-preview.html) for later use.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-01 10:59:55 +02:00
popovskik 7bc249e8a4 Wire Become a Member form to the membership Google Form
Map path/name/email/phone/city/university/membership/consent columns plus a full Summary field; city and membership are derived from the student or supporter answers.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-01 00:34:16 +02:00
popovskik af40ef9da9 Become a Member: add EUR10/year membership fee to the FAQ
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-01 00:24:58 +02:00
popovskik a21450c8c8 Add flagship Become a Member page with interactive multi-step form
New trilingual /<lang>/become-a-member/ conversion page: hero with real-photo collage, why-join benefits, animated MSOS-in-numbers, ways to participate, membership-in-real-life and projects showcase (real project photos), testimonials, who-can-join, an adaptive multi-step form (student + supporter flows, conditional fields, progress, personalised messages, validation, success screen), FAQ and final CTA. Site-wide 'Become a member' buttons now link here. Form posts to a Google Form once wired; metrics/testimonials are placeholders to confirm.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-01 00:14:13 +02:00
popovskik 5b14cc2189 News hub: add working pagination that respects the type filter
Client-side paginator (9 per page) reusing the site's pagination styling; page numbers with dots for long lists, Previous/Next with disabled states, resets to page 1 on filter change and hides when a single page.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 23:56:42 +02:00
popovskik ea9acc4968 Add News hub and wire homepage Latest news to a dated content index
New /<lang>/news/ hub aggregates real projects (title+image read from their pages), placeholder news announcements, and blog items, newest-first with type badges and a type filter. Homepage Latest news now shows the newest dated items as badged cards with a working See all to the hub; the News menu link points there too. Dates in news.js are placeholders to replace with real publish dates.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 23:50:05 +02:00
popovskik ec794a32e6 Nav cleanup + new Blog page
Remove 'Mentorship Programme' and 'Open calls' from the menus, rename 'Announcements' to 'News and Announcements', and wire the Blog link. Add a trilingual /<lang>/blog/ page with a distinct look: featured strip, client-side topic filters, and a masonry card wall with colour-coded tags (placeholder posts for now).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 23:39:17 +02:00
popovskik 3dd8a81882 Fix guide landing hero cropped under fixed header
Match the FAQ fix: increase .guide-landing-hero top padding so the eyebrow and title clear the fixed 80px header.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 23:18:36 +02:00
popovskik f8e4d765a3 Remove em/en dashes site-wide and fix FAQ hero cropped under fixed header
Replace em/en dashes with commas (or 'to' for number ranges, keeping the euro sign) across the FAQ, home, timeline and project pages; hyphens in compound words are left intact. Increase .faq-hero top padding so the eyebrow/title clear the fixed 80px header.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 23:14:45 +02:00
popovskik c2ed09544d Rebuild FAQ content from the scraped/brainstormed research set
Replace the ad-hoc FAQ questions with the curated P1 + strong-P2 set from research/faq-questions-and-rating.md: 33 questions across 9 sections, priority-ordered, including the MSOS third-country questions and concrete facts (free bachelor+master, B2 only for specific programmes, no entrance exam except art/architecture/sport/dental-prosthetics, 30 Sept renewal, 8-day address registration, non-EU quotas).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 23:01:35 +02:00
popovskik 4df3651db7 Add trilingual FAQ page and wire FAQ links site-wide
New /<lang>/faq/ page (en/si/mk) with categorised accordion Q&A that link into the Student Welcome Guide, plus a contact/Viber block. Nav 'FAQs' links and 'See all FAQs' buttons across the site now point to it.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 22:35:12 +02:00
popovskik 5a94c62456 Partners marquee: use real partner logos (all languages), trim logo whitespace
Add the auto-scrolling partners marquee to all three home pages (en/si/mk) with the six official partner logos (Embassy of Slovenia in Skopje, NLB, CTK, DSMP, Kampus, Povezani), trimmed to their artwork so they size consistently.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 22:25:48 +02:00
popovskik cc849fa6dd Vendor language flags locally and add scrolling partners marquee
Flags: replace flag-icons CDN with local SVGs (images/flags/{gb,si,mk}.svg) referenced as CSS backgrounds, so no external dependency and no per-page path issues. Partners: replace the static home-page logo row with a seamless auto-scrolling, hover-pausing marquee (CSS-only, reduced-motion aware, edge fade).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 22:16:54 +02:00
popovskik 95b2484117 Redesign language switcher with circular flag icons
Desktop dropdown and mobile modal now show circular country flags (flag-icons) with clean language names and an active-language highlight, driven by the page lang via main.js.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 22:06:10 +02:00
popovskik 44433d4145 Footer: correct legal name spelling and unify left-column text style
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 21:57:21 +02:00
popovskik fc3ac32e7e Rebuild site footer across all pages
Add legal name, real social links (FB/IG/LinkedIn/YouTube), clickable email, guide and section navigation, and 2026 copyright. All links depth-correct per page and translated per language.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 21:46:50 +02:00
popovskik c035b64bd3 Route builder: drop reserved label height on single-column mobile layout
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 21:28:00 +02:00
popovskik cc047dd867 Fix route builder: remove stray hero border line and bottom-align field labels
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 21:20:17 +02:00
popovskik 9247ed74bf Merge pull request 'Student Welcome Guide: full trilingual guide + personal route generator' (#3) from kristijan-dev into develop
Deploy to Production on Develop Push / deploy (push) Successful in 1m28s Details
Reviewed-on: #3
2026-07-31 11:46:37 +00:00
popovskik 449297a35d Route report print: drop the blank second page
The site header/footer were hidden with visibility:hidden, which keeps their layout height and pushed a blank second page. Now they are display:none in print and the report flows normally, so the printed height matches the content and it prints as a single page.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 13:41:40 +02:00
popovskik 39899e38c4 Route report print: comfortable sizing filling one page, keep key links
Reverts the over-compacted tiny/top-heavy print. Uses readable sizes (12px base, 22px title), centered header, and keeps the Key pages block so the report fills one A4 page nicely while still fitting on a single page; blocks keep page-break-inside:avoid.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 13:38:08 +02:00
popovskik 4caccf3ad7 Polish route report: spacing, centered header, one-page print, no broken blocks
Adds top spacing so the report clears the sticky nav; centers the logo/title/date into a clean report header. Print: @page margin 0 removes the browser URL/date/page-number chrome, compacts fonts/spacing, drops the non-clickable Key pages block, and adds page-break-inside:avoid so the disclaimer and other blocks no longer split across pages.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 13:34:40 +02:00
popovskik b5fc4b37bb Enable route report demographics collection via Google Form
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 13:28:15 +02:00
popovskik b486a4a70d Upgrade Build My Route into a personal report generator with export and data hook
Adds role, faculty (typed), and budget fields; the configurator now navigates to a new per-language results page (my-route/) carrying the answers in the URL. The results page renders a branded, printable report: profile chips, tailored ordered steps, city/budget/role/level focus tips, key page links, a disclaimer, and a Save-as-PDF/print button (print CSS shows only the report). my-route.js also has a Google Form hook to collect the profile for demographics once configured.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 12:58:45 +02:00
popovskik f88a9bb6b4 Landing: add featured essentials row and make stages collapsible dropdowns
Adds a 5-card featured row (journey, deadlines, eVS apply, residence permit, accommodation) above the stages, and converts the six stage cards into native details/summary accordions (first open by default, chevron rotates). Links inside open into a compact grid. Cuts the empty white space and visual noise.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 12:33:41 +02:00
popovskik 13b2bb6eb2 Reorganise landing: group the 30 links into six numbered journey stages
Replaces the flat crowded quicklink wall with six numbered stage cards (Start here, Apply to study, Residence and healthcare, Move and settle in, Everyday student life, After your first year), each with an icon, a one-line description, and its topic links. New guide-cats/guide-cat styles; section retitled to Find your way through the guide.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 12:25:37 +02:00
popovskik ff22dc1888 Restyle eVS webinar embed: clean rounded shadowed video and first-person caption
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 12:15:33 +02:00
popovskik dbca25961b Embed eVS application webinar video at top of the eVS guide page
Adds a reusable {video} block (responsive 16:9 youtube-nocookie embed) rendered as a prominent orange callout with title and caption, placed right after the warning box on evs-application-guide so students see it first. Trilingual title/caption.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 12:10:24 +02:00
popovskik f174bb5f68 Feedback: space/bottom-align Send button; submit No + comment as one row
Comment area is now a flex row that bottom-aligns the Send button with a 16px gap. The No vote is held until the comment is sent so both land on one Google Form row; a No left without a comment is still recorded once via sendBeacon on page-leave.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 12:03:07 +02:00
popovskik fd4cd73b51 Enable comment collection via Google Form Comment field
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 11:44:54 +02:00
popovskik 1416f9f344 Fix feedback spam: lock buttons after vote, add comment box on No
Voting now locks the widget for the page view (buttons disabled, chosen one highlighted, thank-you shown); reload to vote again. Fixes the CSS bug where display:flex overrode the hidden attribute so buttons stayed clickable. On No, an optional comment box posts to a separate Comment field. Adds a guarded [hidden] rule and selected/disabled/comment styles.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 11:41:57 +02:00
popovskik 49b290efb1 Enable Google Form feedback collection with live form endpoint
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 11:27:49 +02:00
popovskik 0e2a061d41 Wire feedback votes to an optional Google Form endpoint
sendVote now POSTs the page (slug + language) and Yes/No answer to a Google Form when the GOOGLE_FORM config is filled in; stays a no-op until then. Includes step-by-step setup notes in the file.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 11:24:35 +02:00
popovskik acc39a701f Add Still need help section: contact, Viber community button, Yes/No feedback
Every guide page and the landing now end with a help section: an Email us contact, a prominent Viber community join button, and a Was this page helpful Yes/No widget. guide-feedback.js records the vote in localStorage and on No invites emailing MSOS or asking in Viber; it exposes a sendVote hook for later central collection.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 11:20:12 +02:00
popovskik 601df2c95e Deepen budget and academic-life: sample monthly budget table + student-rights duration
student-budget gains an illustrative monthly budget table (per-category ranges, ~EUR455-850
total) tied to the EUR484.88 means minimum. academic-life gains a section on what student
status grants and how long the rights last (one programme per level, n+1+1 extensions).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 11:05:40 +02:00
popovskik 02b217bbe9 Deepen application-flow: info-days practice, aptitude tests, national enrolment rounds
choose-a-programme gains concrete info-day timing (mid-Feb Fri/Sat, visit 2-3), a
question checklist, and the aptitude-test faculty list + timing. admission-and-enrolment
gains the national three-round system, omejitev vpisa (end-April), basic/additional
criteria, and July-October enrolment timing.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 11:03:10 +02:00
popovskik 582aab0679 Deepen accommodation page: concrete m2 brokerage + faculty-brokered dorm contacts
Adds the hard fact that self-funded foreign degree students cannot get a subsidised
Studentski dom place, the faculty-brokered non-subsidised route (Dijaski dom Vic), and
the free m2 room-brokerage contact (Studentska hisa SRCe, 080 98 67, svetovalnica.com/sobe).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 10:52:20 +02:00
popovskik 36b5793e7e Deepen transport page: concrete Nomago e-bike pricing, LPP renewal dates, Urbana+IJPP
Adds student e-bike pricing (EUR30 / EUR25 ISIC, 30-min free, NAZAJVSOLO coupon),
BicikeLJ/MBajk parity, LPP 2025/26 renewal and pre-sale dates, Potniski center address,
the Slovenija intercity option, and the Urbana+IJPP unlock note.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 10:50:57 +02:00
popovskik 18f47b344a Deepen RM/SI 3 page: concrete two-country procedure (FZOM form -> ZZZS certificate)
Splits the health-insurance pathway into the Macedonia side (getting the bilingual
RM/SI 3 from the FZOM branch) and the Slovenia side (converting it into the Potrdilo
MedZZ certificate at ZZZS), and names the actual certificate issued.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 10:48:31 +02:00
popovskik 6cbaf6460b Deepen residence cluster: eSamonarocanje 8-step walkthrough + sample parent statement
where-to-apply now includes the full portal appointment walkthrough (steps, Slovenian
labels, 120-minute confirmation) and an appointment-day warning. means/address gains a
sample parent support statement and the concrete EUR484.88 monthly figure.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 10:46:10 +02:00
popovskik dd311a9693 Deepen student-residence-permit page with comprehensive concrete content from MSOS 22-page guide
Rewrites the residence permit page from vague signposting into a full walkthrough:
per-document explanations, exact fees, EUR484.88 means rule, 8-day address
registration, 30 September renewal deadline, sub-90-day rule, and the confirmation
that permits border crossing. Corrects photo size to 33x45mm.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 10:40:16 +02:00
popovskik 0ba9d96197 Fix Batch 5 SI/MK: proper Slovenian diacritics and Macedonian Cyrillic on organisations page
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 10:14:27 +02:00
popovskik eef25bfd45 Add v3 Page 29: student organisations and extracurricular life (Batch 5)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 10:08:50 +02:00
popovskik 865de7aeda Integrate v3 master: work, academic life, cities, budget, wellbeing, renewal, sources (Batch 4)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 10:05:12 +02:00
popovskik 28d02f3994 Integrate v3 master: admission and academic-prep cluster (Batch 3)
Rewrites the ten application/admission pages to the deeper v3 English
master, trilingual: complete-student-journey (9-stage timeline),
choose-a-programme, bachelor-application, master-application,
application-deadlines (2026/2027 tables), evs-application-guide,
recognition-of-education, document-preparation, admission-and-enrolment,
tuition-and-scholarships. Adds hero placeholders, Sources sections, and
warning/macedonia/msos boxes. Tuition notes bilateral tuition-free
treatment; deadlines shown per university with verify-latest guidance.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-30 22:23:21 +02:00
popovskik 7b6787b39d Integrate v3 master: accommodation, arrival, admin, meals, transport (Batch 2)
Rewrites the six living/arrival/benefits pages (student-accommodation,
prepare-to-move, arrival-checklist, administrative-basics, student-meals,
student-transport) to the deeper v3 English master, trilingual, with
hero placeholders and Sources sections. Transport states subsidy applies
regardless of distance (old 2 km rule explicitly retired); meals keep the
current €5.19; dorm eligibility distinction and scam/lease checklists added.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-30 22:07:42 +02:00
popovskik f23110d6ae Integrate v3 master: residence and health cluster (Batch 1)
Rewrites the six residence/health pages (visa-and-residence-explained,
student-residence-permit, where-to-apply-for-residence,
means-accommodation-address, rm-si-3-health-insurance,
healthcare-in-slovenia) to the deeper v3 English master, trilingual.
Adds backward-compatible generator support for per-page hero-image
placeholders and a "Sources and further information" section, plus
.guide-last-checked styling. Owner decisions applied (student work on
the study permit vs employment permit; sufficient means shown as
"check current"). SI/MK bodies are MSOS working translations pending
native proofread.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-30 21:58:16 +02:00
popovskik 5c9699b9a5 Add remaining 24 Student Welcome Guide topic pages (Batches A-D)
Completes the 30-page guide: adds programme choice, recognition,
documents, admission, tuition, residence, health, accommodation,
arrival, admin basics, meals, transport, student work, academic
life, study cities, budget, wellbeing, renewal, and official
sources, each in EN/SI/MK. Landing quicklinks now list all 29
topics; adds guide-linklist styling and a links block renderer.

SI/MK bodies of dense administrative content still need a native
proofread before publishing.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-30 12:25:22 +02:00
popovskik cee9f1da10 Add Student Welcome Guide, legal pages, and working newsletter
Student Welcome Guide (Phase 1):
- Landing + 5 topic pages (journey, bachelor, master, deadlines, eVS)
  in EN/SI/MK, reusing the article auto-TOC
- New css/pages/_guide.css components and a 3:1 hero image placeholder
- Functional client-side "Build my route" tool (student-guide.js)
- "Student Welcome Guide" menu link wired site-wide

Legal pages:
- Trilingual Privacy Policy and Cookie Policy (GDPR-oriented,
  MailerLite disclosed, IP RS complaint route)
- Footer legal strip + Organisation column links wired site-wide,
  depth-aware, plus header/footer templates

Newsletter:
- MailerLite subscribe handler in main.js upgrades both form variants
  on every page: validation, double opt-in, inline trilingual status
- Subscribe status styles in css/pages/_projects.css

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-30 02:17:35 +02:00
popovskik 3ce470946d Merge pull request 'kristijan-dev' (#2) from kristijan-dev into develop
Deploy to Production on Develop Push / deploy (push) Successful in 1m21s Details
Reviewed-on: #2
2026-07-29 11:40:51 +00:00