Skip to content

Commit a08494d

Browse files
committed
feat: advent of craft public website hub
0 parents  commit a08494d

38 files changed

Lines changed: 3668 additions & 0 deletions

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
AGENTS.MD
2+
aoc-website-restructuring.md
3+
.idea/

2024/INSTRUCTIONS.md

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
## 🚀 Instructions for your journey.
2+
Our `Advent of Craft 2024` starts soon.
3+
4+
A long journey awaits you.
5+
6+
In order to prepare your ship for this journey, here is a task list of the things you need to know / install before setting sail.
7+
8+
### 🔨Install your tools
9+
- Install an `IDE`
10+
- Intellij Community
11+
- Visual Studio
12+
- VS Code
13+
- ...
14+
- Create an account on `github` to get the latest changes and `fork` the repository.
15+
- Install `git` to get the repository
16+
- With a git bash or git client
17+
- Install and create an account on [Discord](https://discord.gg/E5Z9s9UKTS) to share with the community
18+
19+
### ✅ The process
20+
21+
Each day, an exercise is going to be posted at around 1PM Europe time (GMT+1) in the public repository here: https://github.com/advent-of-craft/2024.git
22+
23+
At the same time, a solution for the exercise of the previous day is going to be posted.
24+
25+
The repository will have an _exercise/_ folder containing a subfolder for each day as well as a _solution/_ folder.
26+
27+
### 👨‍💻Posting your solution
28+
29+
Each day, a dedicated channel in the `Discord` is going to be created for posting solutions.
30+
31+
We advise you to post your solution in order to benefit the whole community.
32+
You can use the following methods to do so:
33+
34+
1) Post a `screenshot` of your solution in the Discord channel (via Codesnap or other tools).
35+
2) Post your code in a `markdown` format.
36+
- You can wrap your code within this markdown
37+
38+
```java
39+
paste your code like this
40+
```
41+
42+
3) From your `github` account you can create your own solution.
43+
- you can fork the following repository: https://github.com/advent-of-craft/2024.git
44+
- post a link to your repository and solution in the Discord channel (can be with branches per day)
45+
46+
We encourage everyone to start healthy discussions on the Discord that are related to the exercise of the day and any advice you want to share with the community.
47+
48+
### ❓Help on your journey
49+
50+
A help channel is available at any time on the Discord server.
51+
52+
If you get stuck with IDE configuration, git commands or anything that prevents you from coding, please let us know, your hosts and the community will make everything possible to help you.
53+
54+
### 🎙️Last word from your hosts
55+
56+
Remember that this initiative is completely free, and you can reuse these exercises for your own crafting journey with the `step-by-step` proposals of solutions as well.
57+
58+
> We humbly ask you in return to approach the journey with an open mind,
59+
a good will and that you respect the other passengers. The Discord is a safe
60+
space where all conversations are open so let's all remember to be civilized.
61+
62+
We are all here to learn.
63+
64+
🎅 May this epic crafting journey begin! 🧑‍🎄

2024/calendar.css

Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
/* General body styling */
2+
html, body {
3+
margin: 0;
4+
padding: 0;
5+
font-family: Arial, sans-serif;
6+
background-color: #26606d;
7+
color: #fff;
8+
height: 100%;
9+
display: flex;
10+
flex-direction: column;
11+
}
12+
13+
h1, h2 {
14+
text-align: center;
15+
margin: 10px 0;
16+
}
17+
18+
h1 {
19+
font-family: 'Brusher', cursive;
20+
font-size: 2.5em;
21+
}
22+
23+
h1 a {
24+
color: #fff;
25+
text-decoration: none;
26+
}
27+
28+
h2 {
29+
font-family: 'Gloria Hallelujah', cursive;
30+
font-size: 1.2em;
31+
font-style: italic;
32+
}
33+
34+
.content {
35+
flex: 1;
36+
display: flex;
37+
flex-direction: column;
38+
align-items: center;
39+
}
40+
41+
.advent-calendar {
42+
display: flex;
43+
flex-wrap: wrap;
44+
justify-content: center;
45+
gap: 10px;
46+
padding: 20px;
47+
max-width: 800px;
48+
}
49+
50+
.advent-day {
51+
width: 120px;
52+
height: 120px;
53+
background-color: #26606d;
54+
border: 2px solid #fff;
55+
border-radius: 10px;
56+
display: flex;
57+
flex-direction: column;
58+
align-items: center;
59+
justify-content: center;
60+
text-align: center;
61+
font-size: 18px;
62+
font-weight: bold;
63+
text-decoration: none;
64+
transition: background-color 0.3s ease;
65+
cursor: pointer;
66+
position: relative;
67+
color: #fff;
68+
}
69+
70+
.advent-day.disabled {
71+
background-color: #ccc;
72+
color: #666;
73+
pointer-events: none;
74+
}
75+
76+
.advent-day:hover:not(.disabled) {
77+
background-color: #3b868f;
78+
}
79+
80+
.advent-day .title {
81+
font-size: 18px;
82+
}
83+
84+
.advent-day .subtitle {
85+
font-size: 12px;
86+
margin-top: 5px;
87+
white-space: nowrap;
88+
overflow: hidden;
89+
text-overflow: ellipsis;
90+
width: 80%;
91+
}
92+
93+
.elf {
94+
position: absolute;
95+
width: 150px;
96+
}
97+
98+
footer {
99+
background-color: #1d4f56;
100+
text-align: center;
101+
padding: 10px 0;
102+
font-size: 0.9em;
103+
color: #fff;
104+
}
105+
106+
footer a {
107+
color: #fff;
108+
text-decoration: underline;
109+
}
110+
111+
112+
/* Elves Styling */
113+
.elf {
114+
position: absolute;
115+
width: 100px;
116+
}
117+
118+
.elf.top-left {
119+
top: 20px;
120+
left: 10px;
121+
}
122+
123+
.elf.top-right {
124+
top: 20px;
125+
right: 10px;
126+
}

2024/img/yann.png

531 KB
Loading

2024/img/yoan.png

751 KB
Loading

2024/index.html

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8">
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
6+
<meta name="description" content="Advent Of Craft Calendar 2024 - Craft Better Code Together Every Day!">
7+
<meta name="keywords" content="Craft, Advent Calendar, Software, Code, Collaboration">
8+
<meta name="author" content="Yann Courtel, Yoan Thirion">
9+
10+
<!-- Open Graph Meta Tags for Social Sharing -->
11+
<meta property="og:title" content="Advent Of Craft 2024" />
12+
<meta property="og:description" content="Join us in crafting better code together every day with our Advent Of Craft Calendar 2024!" />
13+
<meta property="og:image" content="https://raw.githubusercontent.com/advent-of-craft/2024/refs/heads/main/img/advent-of-craft.webp" />
14+
<meta property="og:url" content="https://github.com/advent-of-craft/2024" />
15+
<meta property="og:type" content="website" />
16+
<meta property="og:site_name" content="Advent Of Craft" />
17+
18+
<meta name="twitter:card" content="https://raw.githubusercontent.com/advent-of-craft/2024/refs/heads/main/img/advent-of-craft.webp">
19+
<meta name="twitter:title" content="Advent Of Craft 2024">
20+
<meta name="twitter:description" content="Craft BETTER Code, TOGETHER, Every Day. Explore our Advent Of Craft Calendar!">
21+
<meta name="twitter:image" content="https://raw.githubusercontent.com/advent-of-craft/2024/refs/heads/main/img/advent-of-craft.webp">
22+
23+
<title>Advent Of Craft 2024</title>
24+
<link href="https://fonts.googleapis.com/css2?family=Brusher&family=Gloria+Hallelujah&display=swap" rel="stylesheet">
25+
<link rel="stylesheet" href="calendar.css">
26+
<script src="snowflakes.js"></script>
27+
</head>
28+
<body>
29+
<h1><a href="https://github.com/advent-of-craft/2024" target="_blank">Advent Of Craft 2024</a></h1>
30+
<h2>"Craft BETTER Code, TOGETHER, Every Day."</h2>
31+
32+
<a href="https://www.linkedin.com/in/yanncourtel/" target="_blank">
33+
<img src="img/yann.png" alt="Yann Courtel" class="elf top-left">
34+
</a>
35+
<a href="https://www.linkedin.com/in/yoanthirion/" target="_blank">
36+
<img src="img/yoan.png" alt="Yoan Thirion" class="elf top-right">
37+
</a>
38+
39+
<div class="content">
40+
<div class="advent-calendar">
41+
<a href="https://github.com/advent-of-craft/2024/blob/main/docs/day00/challenge.md" target="_blank" class="advent-day" alt="Day 0: An encrypted email..."><span class="title">Day 0</span><span class="subtitle">An encrypted email...</span></a>
42+
<a href="https://github.com/advent-of-craft/2024/blob/main/docs/day01/challenge.md" target="_blank" class="advent-day" alt="Day 1: Too many parameters..."><span class="title">Day 1</span><span class="subtitle">Too many parameters...</span></a>
43+
<a href="https://github.com/advent-of-craft/2024/blob/main/docs/day02/challenge.md" target="_blank" class="advent-day" alt="Day 2: Extend the program."><span class="title">Day 2</span><span class="subtitle">Extend the program.</span></a>
44+
<a href="https://github.com/advent-of-craft/2024/blob/main/docs/day03/challenge.md" target="_blank" class="advent-day" alt="Day 3: Fuzzy or not?"><span class="title">Day 3</span><span class="subtitle">Fuzzy or not?</span></a>
45+
<a href="https://github.com/advent-of-craft/2024/blob/main/docs/day04/challenge.md" target="_blank" class="advent-day" alt="Day 4: A routine with Fakes and Mocks."><span class="title">Day 4</span><span class="subtitle">A routine with Fakes and Mocks.</span></a>
46+
<a href="https://github.com/advent-of-craft/2024/blob/main/docs/day05/challenge.md" target="_blank" class="advent-day" alt="Day 5: Validate Elf Ids (EID)"><span class="title">Day 5</span><span class="subtitle">Validate Elf Ids (EID)</span></a>
47+
<a href="https://github.com/advent-of-craft/2024/blob/main/docs/day06/challenge.md" target="_blank" class="advent-day" alt="Day 6: Review some code."><span class="title">Day 6</span><span class="subtitle">Review some code.</span></a>
48+
<a href="https://github.com/advent-of-craft/2024/blob/main/docs/day07/challenge.md" target="_blank" class="advent-day" alt="Day 7: Can you read and understand the tests well?"><span class="title">Day 7</span><span class="subtitle">Can you read and understand the tests well?</span></a>
49+
<a href="https://github.com/advent-of-craft/2024/blob/main/docs/day08/challenge.md" target="_blank" class="advent-day" alt="Day 8: Ask me what to do."><span class="title">Day 8</span><span class="subtitle">Ask me what to do.</span></a>
50+
<a href="https://github.com/advent-of-craft/2024/blob/main/docs/day09/challenge.md" target="_blank" class="advent-day" alt="Day 9: Improve tests readability."><span class="title">Day 9</span><span class="subtitle">Improve tests readability.</span></a>
51+
<a href="https://github.com/advent-of-craft/2024/blob/main/docs/day10/challenge.md" target="_blank" class="advent-day" alt="Day 10: Fix a bug."><span class="title">Day 10</span><span class="subtitle">Fix a bug.</span></a>
52+
<a href="https://github.com/advent-of-craft/2024/blob/main/docs/day11/challenge.md" target="_blank" class="advent-day" alt="Day 11: Secure the program."><span class="title">Day 11</span><span class="subtitle">Secure the program.</span></a>
53+
<a href="https://github.com/advent-of-craft/2024/blob/main/docs/day12/challenge.md" target="_blank" class="advent-day" alt="Day 12: Collect or not collect?"><span class="title">Day 12</span><span class="subtitle">Collect or not collect?</span></a>
54+
<a href="https://github.com/advent-of-craft/2024/blob/main/docs/day13/challenge.md" target="_blank" class="advent-day" alt="Day 13: Refactor your code with the Mikado method."><span class="title">Day 13</span><span class="subtitle">Refactor your code with the Mikado method.</span></a>
55+
<a href="https://github.com/advent-of-craft/2024/blob/main/docs/day14/challenge.md" target="_blank" class="advent-day" alt="Day 14: Find a more efficient way to test object mappings."><span class="title">Day 14</span><span class="subtitle">Find a more efficient way to test object mappings.</span></a>
56+
<a href="https://github.com/advent-of-craft/2024/blob/main/docs/day15/challenge.md" target="_blank" class="advent-day" alt="Day 15: Reason to fail?"><span class="title">Day 15</span><span class="subtitle">Reason to fail?</span></a>
57+
<a href="https://github.com/advent-of-craft/2024/blob/main/docs/day16/challenge.md" target="_blank" class="advent-day" alt="Day 16: Bug bounty."><span class="title">Day 16</span><span class="subtitle">Bug bounty.</span></a>
58+
<a href="https://github.com/advent-of-craft/2024/blob/main/docs/day17/challenge.md" target="_blank" class="advent-day" alt="Day 17: Parse Elf Ids (EID)"><span class="title">Day 17</span><span class="subtitle">Parse Elf Ids (EID)</span></a>
59+
<a href="https://github.com/advent-of-craft/2024/blob/main/docs/day18/challenge.md" target="_blank" class="advent-day" alt="Day 18: Add features 🦎🖖."><span class="title">Day 18</span><span class="subtitle">Add features 🦎🖖.</span></a>
60+
<a href="https://github.com/advent-of-craft/2024/blob/main/docs/day19/challenge.md" target="_blank" class="advent-day" alt="Day 19: Performance..."><span class="title">Day 19</span><span class="subtitle">Performance...</span></a>
61+
<a href="https://github.com/advent-of-craft/2024/blob/main/docs/day20/challenge.md" target="_blank" class="advent-day" alt="Day 20: Contract Tests."><span class="title">Day 20</span><span class="subtitle">Contract Tests.</span></a>
62+
<a href="https://github.com/advent-of-craft/2024/blob/main/docs/day21/challenge.md" target="_blank" class="advent-day" alt="Day 21: Safely refactor the `TourCalculator`."><span class="title">Day 21</span><span class="subtitle">Safely refactor the `TourCalculator`.</span></a>
63+
<a href="https://github.com/advent-of-craft/2024/blob/main/docs/day22/challenge.md" target="_blank" class="advent-day" alt="Day 22: Bulletproof our code with "EID mutations"."><span class="title">Day 22</span><span class="subtitle">Bulletproof our code with "EID mutations".</span></a>
64+
<a href="https://github.com/advent-of-craft/2024/blob/main/docs/day23/challenge.md" target="_blank" class="advent-day" alt="Day 23: Emergency before Christmas."><span class="title">Day 23</span><span class="subtitle">Emergency before Christmas.</span></a>
65+
<a href="https://github.com/advent-of-craft/2024/blob/main/docs/day24/challenge.md" target="_blank" class="advent-day" alt="Day 24: Make yourself indispensable."><span class="title">Day 24</span><span class="subtitle">Make yourself indispensable.</span></a>
66+
<a href="https://github.com/advent-of-craft/2024/blob/main/docs/day25/challenge.md" target="_blank" class="advent-day" alt="Day 25: A Message for Your Future Self 🎁"><span class="title">Day 25</span><span class="subtitle">A Message for Your Future Self 🎁</span></a>
67+
</div>
68+
</div>
69+
70+
<footer>
71+
Craft at heart by
72+
<a href="https://www.linkedin.com/in/yanncourtel/">Yann Courtel</a> and
73+
<a href="https://www.linkedin.com/in/yoanthirion/">Yoan Thirion</a> | License: MIT &copy;
74+
</footer>
75+
</body>
76+
</html>

2024/snowflakes.js

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
const snowflakeCharacters = ['❄', '✻', '✼', '✽', 'λ'];
2+
3+
const createSnowflake = () => {
4+
const snowflake = document.createElement('div');
5+
snowflake.classList.add('snowflake');
6+
snowflake.textContent = snowflakeCharacters[Math.floor(Math.random() * snowflakeCharacters.length)];
7+
snowflake.style.left = `${Math.random() * 100}vw`;
8+
snowflake.style.fontSize = `${Math.random() * 20 + 10}px`;
9+
snowflake.style.animationDuration = `${Math.random() * 3 + 2}s`;
10+
document.body.appendChild(snowflake);
11+
12+
setTimeout(() => snowflake.remove(), 5000);
13+
};
14+
15+
setInterval(createSnowflake, 200);
16+
17+
/* Snowflake styling in the JS file */
18+
const style = document.createElement('style');
19+
style.innerHTML = `
20+
.snowflake {
21+
position: absolute;
22+
top: 0;
23+
color: white;
24+
font-size: 10px;
25+
pointer-events: none;
26+
animation: fall linear infinite;
27+
}
28+
29+
@keyframes fall {
30+
0% {
31+
transform: translateY(-100px);
32+
opacity: 1;
33+
}
34+
100% {
35+
transform: translateY(100vh);
36+
opacity: 0;
37+
}
38+
}
39+
`;
40+
document.head.appendChild(style);

2025/CNAME

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
www.adventofcraft.com

2025/img/Fabrice.png

67.1 KB
Loading

2025/img/Laurent.png

20.4 KB
Loading

0 commit comments

Comments
 (0)