Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -29,3 +29,4 @@ vue-i18n-locales.generated.js
/.phpunit.result.cache
vite.config.js
.DS_Store
resources/excel/example.xlsx
60 changes: 60 additions & 0 deletions app/Http/Controllers/ContactFormController.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
<?php
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Mail;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Http;

class ContactFormController extends Controller
{
public function submit(Request $request)
{
$validated = $request->validate([
'first_name' => 'required|string|max:255',
'last_name' => 'required|string|max:255',
'email' => 'required|email|max:255',
'phone' => 'nullable|string|max:50',
'subject' => 'required|string',
'message' => 'required|string',
'terms' => 'accepted',
'cf-turnstile-response' => env('TURNSTILE_SECRET_KEY') ? 'required' : 'nullable',
]);

// Validate Turnstile CAPTCHA if keys are present
if (env('TURNSTILE_SECRET_KEY')) {
$response = Http::asForm()->post('https://challenges.cloudflare.com/turnstile/v0/siteverify', [
'secret' => env('TURNSTILE_SECRET_KEY'),
'response' => $request->input('cf-turnstile-response'),
'remoteip' => $request->ip(),
]);

if (!$response->json('success')) {
return redirect()->back()
->withInput()
->withErrors(['captcha' => 'CAPTCHA verification failed. Please try again.']);
}
}

Log::info('Contact form submitted', $validated);

$locale = app()->getLocale();
$view = "emails.$locale.contact";

// Fallback to English view if the localized one doesn't exist
if (!view()->exists($view)) {
$view = 'emails.en.contact';
}

// Use email from .env, fallback to your address if missing
$recipientEmail = env('CONTACT_FORM_RECIPIENT_EMAIL', 'bernard@matrixinternet.ie');

Mail::send($view, ['data' => $validated], function ($message) use ($validated, $recipientEmail) {
$message->to($recipientEmail)
->subject('New Contact Form Submission')
->replyTo($validated['email'], $validated['first_name'] . ' ' . $validated['last_name']);
});

return redirect()->back()->with('success', 'Thank you for contacting us.');
}
}

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions public/build/assets/app-CYEMjCxX.css

Large diffs are not rendered by default.

1 change: 0 additions & 1 deletion public/build/assets/app-DjbcPPgg.css

This file was deleted.

Large diffs are not rendered by default.

6 changes: 3 additions & 3 deletions public/build/manifest.json
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
{
"resources/assets/sass/app.scss": {
"file": "assets/app-DaRk7sSd.css",
"file": "assets/app-CNrk3yLd.css",
"src": "resources/assets/sass/app.scss",
"isEntry": true
},
"resources/css/app.css": {
"file": "assets/app-DjbcPPgg.css",
"file": "assets/app-CYEMjCxX.css",
"src": "resources/css/app.css",
"isEntry": true
},
"resources/js/app.js": {
"file": "assets/app-CJh7_Din.js",
"file": "assets/app-sqTAEKFr.js",
"name": "app",
"src": "resources/js/app.js",
"isEntry": true,
Expand Down
Binary file added public/images/about/1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/images/about/2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/images/about/3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/images/contact-us.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
47 changes: 47 additions & 0 deletions public/images/eulogofunded.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/images/get-involved-2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/images/get-involved-3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/images/get-involved-4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/images/get-involved-5.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/images/get-involved-6.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/images/get-involved.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/images/hackathons/get-involved-2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/images/sponsors/1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/images/toolkits.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/images/values/1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/images/values/2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/images/values/3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/images/values/4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/images/values/5.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/images/values/6.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/images/values/7.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
13 changes: 6 additions & 7 deletions resources/lang/en/about.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,7 @@
'guide' => 'Check out our tutorials and trainings available in 29 languages to get ready to organise activities where young people learn coding and computational thinking.',

'when-text' =>
'<p> EU Code Week is a dynamic grassroots movement that empowers people of all ages to explore coding, creativity, and problem-solving. It breaks down barriers to digital skills, making programming more accessible, visible, and inclusive. From classrooms to community spaces, it connects educators, students and tech enthusiasts, bringing ideas to life through digital innovation, and fostering collaboration across Europe.
</p>',
'EU Code Week is a dynamic grassroots movement that empowers people of all ages to explore coding, creativity, and problem-solving. It breaks down barriers to digital skills, making programming more accessible, visible, and inclusive. From classrooms to community spaces, it connects educators, students and tech enthusiasts, bringing ideas to life through digital innovation, and fostering collaboration across Europe.',

'codeweek_in_numbers-text' =>
'<p>What began in 2013 as a small, grassroots initiative has grown into a year-round movement reaching millions. EU Code Week is now a continuous initiative, with thousands of activities taking place throughout the year in Europe and beyond. The two-week event each October is the culmination of these efforts — a celebration of a community-driven push to make coding, digital creativity and STEM education accessible to all.
Expand Down Expand Up @@ -61,12 +60,12 @@
<p>You can also stay up to date with local community initiaives and international developments through our <a href="/blog/">blog</a>.
</p>',

'partners_and_sponsors' => 'Meet our partners and sponsors',
'partners_and_sponsors' => 'Meet our partners and sponsors',

'about_banner_title'=>'Empowering Europe with digital skills',
'about_banner_content'=>'EU Code Week sparks creativity, problem-solving, and collaboration, making coding and digital skills accessible to everyone, all year round.',
'partners_and_sponsors-title' => 'The Code4Europe Consortium: Driving the future of Code Week',
'partners_and_sponsors-content'=>
'about_banner_title'=>'Empowering Europe with digital skills',
'about_banner_content'=>'EU Code Week sparks creativity, problem-solving, and collaboration, making coding and digital skills accessible to everyone, all year round.',
'partners_and_sponsors-title' => 'The Code4Europe Consortium: Driving the future of Code Week',
'partners_and_sponsors-content'=>
'<p>EU Code Week is now guided by the Code4Europe Consortium, consisting of over 40 educational and tech industry partners from 20 countries. Together, we ensure Code Week’s continued growth, expanding digital education and fostering collaboration across Europe.
</p>
<p>With a strong community of educators, ambassadors, and industry leaders, we’re shaping the future of coding — making it more accessible, inclusive and impactful.
Expand Down
14 changes: 6 additions & 8 deletions resources/lang/en/why-coding.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,11 @@
"It's never been easier to develop an app, build your own robot, or who knows - even invent the flying car! It's not a comfortable journey, but it's a journey full of creative challenges, tons of fun and a supportive community behind you. Are you ready to accept the challenge and become a digital creator?",
"Programming languages are like any other language. Only in this case, kids don't learn to express themselves and communicate with other people. Instead, they get to understand how to communicate with technology. Technology that is all around us - in our smartphones, computers, vehicles, everywhere!",
'But understanding and communicating with computers is only a part of it. Coding also helps develop multi-disciplinary competencies such as computational thinking, problem-solving, creativity and teamwork - excellent skills for all walks of life. The ability to solve problems, to cope with failure and try again, or to collaborate with others, are traits looked-for in many fields.',
'A century ago, programming languages didn’t even exist. Today, code is all around us and pretty much everything can be programmed –even shoes or cereal boxes! So why let others shape our future when we can become the makers and we can realise our visions and ideas? After all, the only limit is our imagination.',
'Alessandro Bogliolo, the coordinator of the EU Code Week team of volunteer ambassadors , said:',
"From the beginning of time, we did many things using stone, iron, paper and pencil that have transformed our lives. Now we live in a different era where our world is moulded in code. Different eras have different jobs, and skills demand. During Code Week, we want to give every European the opportunity to discover coding and have fun with it. Let's learn coding to shape our future",
'Ultimately, programming is a sought-after skill in almost any industry - not only in technology, but also in finance, healthcare, science, even design or agriculture, and the demand only grows bigger. Children who know how to code, who understand how technology works, they have a certain advantage, regardless of which career path they eventually choose.',
'Feeling inspired?',
'Join EU Code Week!',
'Need more food for thought?',
'Visit our blog for more.',
'A century ago, programming languages didn’t even exist. Today, code is everywhere, from your watch to your washing machine. So don’t leave the future to somebody else when you can create it! The only limit is your imagination.',
'As Alessandro Bogliolo, the coordinator of the EU Code Week team of volunteer ambassadors, says:',
'<span class="p-0 mb-2 text-2xl italic font-semibold">"From the beginning of time, we did many things using stone, iron, paper and pencil that have transformed our lives. Now we live in a different era where our world is moulded in code. During Code Week, we want to give every European the opportunity to discover coding and have fun with it. Let\'s learn coding to shape our future"</span>',
'Programming has become an essential skill in all modern industries, from technology and finance, to healthcare, science, design and agriculture. Every sector needs people who understand how technology works, and coding will give you the edge to succeed in a digital world.',
'Feeling inspired? <a class="text-lg font-normal cookweek-link hover-underline md:text-2xl" href="https://codeweek.eu/register">Join EU Code Week!</a>',
'Need more food for thought? <a class="text-lg font-normal cookweek-link hover-underline md:text-2xl" href="https://codeweek.eu/blog/" target="_blank" rel="noopener noreferrer">Visit our blog for more</a>.',
],
];
94 changes: 94 additions & 0 deletions resources/latex/3tRVRViuDv-3.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
\documentclass[12pt]{article}

% Use Latin encoding (T1) as default, then LGR for Greek
\usepackage[T1,LGR,T2A]{fontenc}
\usepackage[utf8]{inputenc}

% Set English as main language
\usepackage[english,greek,russian]{babel}

\usepackage[landscape,a4paper]{geometry}
\geometry{verbose,tmargin=0cm,bmargin=0cm,lmargin=3cm,rmargin=3cm}

\usepackage{fancybox}
\usepackage{calc}
\usepackage{multicol}
\usepackage{graphicx}
\usepackage{url}
\usepackage{eso-pic}
\usepackage{textcomp}
\usepackage{tgheros} % TeX Gyre Heros font
\renewcommand{\familydefault}{\sfdefault}

\usepackage{xcolor}
\definecolor{myorange}{RGB}{226, 83, 48}
\definecolor{Slate600}{HTML}{20262C}
\definecolor{GrayLine}{HTML}{858B91}

% Background certificate image
\newcommand\BackgroundPic{%
\put(0,0){%
\parbox[b][\paperheight]{\paperwidth}{%
\vfill
\centering
\includegraphics[width=\paperwidth,height=\paperheight,keepaspectratio]{images/participation-certificate-2025.png}%
\vfill
}}}

\begin{document}

\AddToShipoutPicture{\BackgroundPic}

~
\vspace{3.5cm}
~

\begin{center}

\vspace{1cm}

\textcolor{Slate600}{\fontsize{13}{13}\selectfont This certificate recognizes that} \\

\vspace{0.5cm}

% Certificate holder name in Greek
\begin{otherlanguage*}{greek}
\textcolor{myorange}{\fontsize{28}{32}\selectfont οκιμές οκιμές οκιμέ}
\end{otherlanguage*} \\

\vspace{0.5cm}

\textcolor{Slate600}{\fontsize{13}{13}\selectfont Has developed essential computational thinking skills} \\
\textcolor{Slate600}{\fontsize{13}{13}\selectfont and contributed to the success of} \\

\vspace{0.8cm}

\textcolor{myorange}{\fontsize{36}{42}\selectfont EU CodeWeek 2025} \\

\vspace{0.8cm}

\textcolor{Slate600}{\fontsize{13}{13}\selectfont by actively participating in the coding event} \\

\vspace{0.5cm}

% Event title: no forced language so Greek or English works
\textcolor{myorange}{\fontsize{28}{32}\selectfont TEST TEST434343343443343434} \\

\vspace{0.5cm}

\textcolor{Slate600}{\fontsize{13}{13}\selectfont Which took place on} \\

\vspace{0.5cm}

% Event date in Greek
\begin{otherlanguage*}{greek}
\textcolor{Slate600}{\fontsize{24}{28}\selectfont 20/12/25}
\end{otherlanguage*} \\

\vspace{0.3cm}
\centering
\textcolor{GrayLine}{\rule{183pt}{2pt}}

\end{center}

\end{document}
94 changes: 94 additions & 0 deletions resources/latex/j4aijZh2i8-3.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
\documentclass[12pt]{article}

% Use Latin encoding (T1) as default, then LGR for Greek
\usepackage[T1,LGR,T2A]{fontenc}
\usepackage[utf8]{inputenc}

% Set English as main language
\usepackage[english,greek,russian]{babel}

\usepackage[landscape,a4paper]{geometry}
\geometry{verbose,tmargin=0cm,bmargin=0cm,lmargin=3cm,rmargin=3cm}

\usepackage{fancybox}
\usepackage{calc}
\usepackage{multicol}
\usepackage{graphicx}
\usepackage{url}
\usepackage{eso-pic}
\usepackage{textcomp}
\usepackage{tgheros} % TeX Gyre Heros font
\renewcommand{\familydefault}{\sfdefault}

\usepackage{xcolor}
\definecolor{myorange}{RGB}{226, 83, 48}
\definecolor{Slate600}{HTML}{20262C}
\definecolor{GrayLine}{HTML}{858B91}

% Background certificate image
\newcommand\BackgroundPic{%
\put(0,0){%
\parbox[b][\paperheight]{\paperwidth}{%
\vfill
\centering
\includegraphics[width=\paperwidth,height=\paperheight,keepaspectratio]{images/participation-certificate-2025.png}%
\vfill
}}}

\begin{document}

\AddToShipoutPicture{\BackgroundPic}

~
\vspace{3.5cm}
~

\begin{center}

\vspace{1cm}

\textcolor{Slate600}{\fontsize{13}{13}\selectfont This certificate recognizes that} \\

\vspace{0.5cm}

% Certificate holder name in Greek
\begin{otherlanguage*}{greek}
\textcolor{myorange}{\fontsize{28}{32}\selectfont οκιμές οκιμές οκιμέ}
\end{otherlanguage*} \\

\vspace{0.5cm}

\textcolor{Slate600}{\fontsize{13}{13}\selectfont Has developed essential computational thinking skills} \\
\textcolor{Slate600}{\fontsize{13}{13}\selectfont and contributed to the success of} \\

\vspace{0.8cm}

\textcolor{myorange}{\fontsize{36}{42}\selectfont EU CodeWeek 2025} \\

\vspace{0.8cm}

\textcolor{Slate600}{\fontsize{13}{13}\selectfont by actively participating in the coding event} \\

\vspace{0.5cm}

% Event title: no forced language so Greek or English works
\textcolor{myorange}{\fontsize{28}{32}\selectfont TEST TEST434343343443343434} \\

\vspace{0.5cm}

\textcolor{Slate600}{\fontsize{13}{13}\selectfont Which took place on} \\

\vspace{0.5cm}

% Event date in Greek
\begin{otherlanguage*}{greek}
\textcolor{Slate600}{\fontsize{24}{28}\selectfont 20/12/25}
\end{otherlanguage*} \\

\vspace{0.3cm}
\centering
\textcolor{GrayLine}{\rule{183pt}{2pt}}

\end{center}

\end{document}
8 changes: 8 additions & 0 deletions resources/latex/missfont.log
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
mktextfm larm3583
mktextfm nullfont
mktextfm larm2986
mktextfm nullfont
mktextfm larm3583
mktextfm nullfont
mktextfm larm2986
mktextfm nullfont
13 changes: 13 additions & 0 deletions resources/views/emails/en/contact.blade.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<h2>New Contact Form Submission</h2>

<p><strong>First Name:</strong> {{ $data['first_name'] }}</p>
<p><strong>Last Name:</strong> {{ $data['last_name'] }}</p>
<p><strong>Email:</strong> {{ $data['email'] }}</p>
@if (!empty($data['phone']))
<p><strong>Phone:</strong> {{ $data['phone'] }}</p>
@endif
@if (!empty($data['subject']))
<p><strong>Subject:</strong> {{ ucfirst($data['subject']) }}</p>
@endif
<p><strong>Message:</strong></p>
<p>{{ nl2br(e($data['message'])) }}</p>
Loading
Loading