Skip to content

Commit a46ca5a

Browse files
committed
Implement projects
1 parent 95703b4 commit a46ca5a

20 files changed

+539
-0
lines changed

app/Providers/AppServiceProvider.php

+9
Original file line numberDiff line numberDiff line change
@@ -42,5 +42,14 @@ public function boot(): void
4242

4343
return round($words / 200);
4444
});
45+
46+
Collection::computed('apps', 'stateClasses', function (Entry $entry) {
47+
switch ($entry->value('state')) {
48+
case 'live':
49+
return 'bg-jade-lighter text-jade-darker';
50+
default:
51+
return 'bg-blue-lighter text-blue-darker';
52+
}
53+
});
4554
}
4655
}

content/collections/apps.yaml

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
title: Apps
2+
revisions: false
3+
slugs: false
4+
structure:
5+
root: false

content/collections/apps/focus.md

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
---
2+
id: focus
3+
title: Focus
4+
blueprint: app
5+
logo: focus
6+
logo_classes: px-1
7+
link: 'https://focus.noeldemartin.com'
8+
state: live
9+
platform: pwa
10+
---
11+
12+
Forget distractions and focus on what's important.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
---
2+
id: freedom-calculator
3+
title: Freedom Calculator
4+
blueprint: app
5+
logo: freedom-calculator
6+
logo_classes: p-2
7+
link: 'https://freedom-calculator.noeldemartin.com'
8+
state: live
9+
platform: pwa
10+
---
11+
12+
Check your economic runway.
+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
---
2+
id: media-kraken
3+
title: 'Media Kraken'
4+
blueprint: app
5+
logo: media-kraken
6+
link: 'https://noeldemartin.github.io/media-kraken/'
7+
state: live
8+
platform: pwa
9+
---
10+
11+
Keep track of your movies and create your own collection.
+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
---
2+
id: planning-poker
3+
title: 'Planning Poker'
4+
blueprint: app
5+
logo: planning-poker
6+
logo_classes: px-2
7+
link: 'https://noeldemartin.github.io/planning-poker/'
8+
state: live
9+
platform: pwa
10+
---
11+
12+
Organize your sprints playing Planning Poker.

content/collections/apps/umai.md

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
---
2+
id: umai
3+
title: Umai
4+
blueprint: app
5+
logo: umai
6+
logo_classes: px-1
7+
link: 'https://umai.noeldemartin.com'
8+
state: live
9+
platform: pwa
10+
---
11+
12+
Manage and share all your precious recipes.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
---
2+
id: zazen-meditation-timer
3+
title: 'Zazen Meditation Timer'
4+
blueprint: app
5+
link: 'https://noeldemartin.github.io/zazen-meditation-timer/'
6+
state: wip
7+
platform: pwa
8+
---
9+
10+
If you don't have time to meditate for 5 minutes, meditate for an hour.

content/collections/pages/projects.md

+1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ id: projects
33
title: Projects
44
blueprint: page
55
icon: projects
6+
template: projects/index
67
---
78

89
In this page, you can find what I've been working on throughout my career. This only includes personal projects though, if you're curious about my professional experience you can look at [my CV](/cv.pdf).

content/trees/collections/apps.yaml

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
tree:
2+
- entry: umai
3+
- entry: media-kraken
4+
- entry: focus
5+
- entry: freedom-calculator
6+
- entry: planning-poker
7+
- entry: zazen-meditation-timer
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
title: App
2+
tabs:
3+
main:
4+
display: Main
5+
sections:
6+
- fields:
7+
- handle: title
8+
field:
9+
type: text
10+
required: true
11+
validate:
12+
- required
13+
width: 33
14+
- handle: link
15+
field:
16+
input_type: url
17+
type: text
18+
display: Url
19+
width: 66
20+
- handle: logo
21+
field:
22+
type: text
23+
display: Logo
24+
width: 33
25+
- handle: logo_classes
26+
field:
27+
type: text
28+
display: 'Logo classes'
29+
width: 66
30+
- handle: content
31+
field:
32+
type: markdown
33+
display: Description
34+
antlers: true
35+
sidebar:
36+
display: Sidebar
37+
sections:
38+
- fields:
39+
- handle: state
40+
field:
41+
options:
42+
- key: live
43+
value: LIVE
44+
- key: wip
45+
value: WIP
46+
type: select
47+
display: State
48+
validate:
49+
- required
50+
- handle: platform
51+
field:
52+
options:
53+
- key: pwa
54+
value: PWA
55+
type: select
56+
display: Platform
57+
validate:
58+
- required

resources/css/main.css

+1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
@config '../../tailwind.config.js';
44

55
@source "../views";
6+
@source "../../app";
67
@source "../../content/collections";
78

89
@layer base {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
<li>
2+
<a
3+
href="{{ $link }}"
4+
aria-label="{{ $title }}"
5+
class="bg-grey-lightest border-grey-light relative flex h-full transform rounded-lg border p-4 no-underline shadow-md transition-all duration-300 hover:scale-105 hover:shadow-lg focus:scale-105 focus:shadow-lg"
6+
>
7+
@if (! empty($logo->value()))
8+
<div class="mr-2 h-20 w-20 flex-shrink-0">
9+
<s:partial
10+
:src="'icons/' . $logo"
11+
:class="'w-full h-full ' . $logoClasses"
12+
/>
13+
</div>
14+
@else
15+
<div
16+
class="mr-2 flex h-20 w-20 flex-shrink-0 items-center justify-center"
17+
>
18+
<s:partial
19+
src="icons/project"
20+
class="text-grey-dark h-10 w-10 fill-current"
21+
/>
22+
</div>
23+
@endif
24+
25+
<div>
26+
<div class="mb-2 flex">
27+
<h3 class="my-0 mr-2 text-xl font-medium">{{ $title }}</h3>
28+
<span
29+
class="{{ $stateClasses }} self-start rounded-full px-2 py-1 text-xs font-semibold tracking-widest"
30+
>
31+
{{ $state->label() }}
32+
</span>
33+
</div>
34+
35+
<div class="text-grey-darker text-sm [&_p]:m-0">
36+
{!! $slot !!}
37+
</div>
38+
39+
@if (! empty($platform->value()))
40+
<span
41+
class="absolute right-0 bottom-0 m-1 rounded-full px-2 py-1 text-xs font-medium tracking-widest uppercase opacity-50"
42+
>
43+
{{ $platform }}
44+
</span>
45+
@endif
46+
</div>
47+
</a>
48+
</li>
+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<svg
2+
class="{{ class ?? '' }}"
3+
xmlns="http://www.w3.org/2000/svg"
4+
fill="none"
5+
viewBox="0 0 429 353"
6+
>
7+
<ellipse cx="208" cy="196" rx="208" ry="157" class="fills" fill="#0ea5e9" />
8+
<ellipse cx="208" cy="196" rx="181" ry="118" class="fills" fill="#fff" />
9+
<circle cx="208" cy="196" class="fills" fill="#0ea5e9" r="86" />
10+
<path
11+
d="M212.828 167.937 376.371 4.853c6.489-6.471 17.008-6.471 23.496 0l24.267 24.198c6.488 6.47 6.488 16.96 0 23.43L220.896 255.147c-6.488 6.471-17.008 6.471-23.496 0L96.866 154.896c-6.488-6.47-6.488-16.96 0-23.43l21.353-21.292c6.53-6.511 17.08-6.628 23.753-.262l60.937 58.134a7.108 7.108 0 0 0 9.919-.109Z"
12+
class="fills"
13+
fill="#0369a1"
14+
/>
15+
</svg>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
<svg
2+
class="{{ class ?? '' }}"
3+
xmlns="http://www.w3.org/2000/svg"
4+
viewBox="0 0 36 36"
5+
>
6+
<path
7+
fill="#5C913B"
8+
d="M35.602 16.28c-2.582-3.761-7.92 1.774-17.662 2.899-3.607.416-6.857 3.428-11.047 3.141-1.718-.118-4.117-5.061-5.913-4.273-.924.406-1.348 1.761-.398 2.779L11.13 33.412s.536.618 2.342.19c.445.131 7.135-2.55 11.003-7.917.926-1.285 2.03-2.355 3.173-3.249 3.711-2.744 7.745-3.7 7.745-3.7.516-.426.637-.879.609-1.272.034-.656-.4-1.184-.4-1.184z"
9+
/>
10+
<path
11+
fill="#A7D28B"
12+
d="M11.476 10.274c-3.783 5.25-10.408 7.737-10.408 7.737-1.236 1.047-.192 2.281-.192 2.281l10.438 12.359s.522.617 2.28.189c0 0 6.625-2.482 10.407-7.732 3.899-5.41 10.93-7.118 10.93-7.118 1.235-1.047.192-2.283.192-2.283L24.685 3.35s-.522-.618-2.28-.192c0 0-7.03 1.704-10.929 7.116z"
13+
/>
14+
<circle cx="22" cy="14" r="5.5" fill="#77B255" />
15+
<path
16+
fill="#5C913B"
17+
d="M12.873 31.929c-.881 0-1.204-.328-1.248-.378L2.216 20.568c-.018-.021-.495-.567-.437-1.261.035-.421.253-.796.647-1.115l.063-.038c.061-.024 6.163-2.532 9.583-7.065l.2.15-.2-.15c3.618-4.796 9.859-6.854 9.921-6.874 1.745-.406 2.316.174 2.377.242l9.285 11.044c.017.018.493.566.435 1.261-.035.42-.253.795-.647 1.114l-.099.049c-.061.015-6.129 1.523-9.644 6.181-3.499 4.64-9.607 7.642-9.668 7.671-.464.11-.846.152-1.159.152zm-.871-.707c.001 0 .452.416 1.865.088.008-.011 6.009-2.962 9.436-7.504 3.437-4.555 9.225-6.182 9.867-6.351.257-.221.399-.466.422-.729.042-.48-.312-.893-.315-.897L23.992 4.784c-.002 0-.45-.415-1.864-.087-.041.014-6.135 2.026-9.656 6.693-3.366 4.461-9.239 6.995-9.758 7.213-.268.225-.414.476-.437.745-.04.476.312.887.315.891l9.41 10.983z"
18+
/>
19+
<path
20+
fill="#FFAC33"
21+
d="m21.276 22.166-.006 5.94.497.59c.969-.884 1.9-1.878 2.705-2.996a15.844 15.844 0 0 1 2.828-2.986l-.483-.575-5.541.027z"
22+
/>
23+
<path
24+
fill="#FFE8B6"
25+
d="M26.798 22.118 14.292 7.305c-1.016.836-1.992 1.811-2.822 2.964-.811 1.126-1.755 2.117-2.735 2.991l1.462 1.731-.001.001 11.075 13.114a18.71 18.71 0 0 0 2.725-3.003c.83-1.152 1.805-2.126 2.82-2.962l-.019-.023h.001z"
26+
/>
27+
<path
28+
fill="#5C913B"
29+
d="M14.479 22.555c-1.557-1.844-4.853 1.148-5.793.035-.455-.539-.162-1.238.436-1.742 1.005-.85 1.73-.355 2.185-.74.323-.272.306-.605.114-.834-.446-.527-1.586-.252-2.472.26l-.431-.51a.754.754 0 0 0-1.152.972l.446.529c-.677.898-.907 2.09-.106 3.037 1.496 1.77 4.833-1.172 5.883.072.364.432.262 1.256-.504 1.902-1.148.971-2.188.516-2.655.91-.228.191-.269.555-.026.844.387.457 1.62.359 2.805-.379.002.002.002.004.002.006l.487.576a.755.755 0 1 0 1.153-.974l-.487-.576c-.005-.006-.013-.01-.019-.016.799-.978 1.069-2.267.134-3.372z"
30+
/>
31+
<path
32+
fill="#E1E8ED"
33+
d="M32.456 32.588c.009-.008.019-.014.028-.021.068-.068.121-.146.181-.221.042-.052.089-.102.128-.155.035-.05.064-.101.096-.152 1.42-2.187.49-5.895-2.321-8.707-2.812-2.812-6.521-3.742-8.707-2.321-.052.031-.103.06-.153.096-.053.039-.104.086-.154.127-.074.061-.152.113-.221.182-.009.009-.015.019-.022.028-.011.011-.024.018-.036.03l.006.005c-1 1.062-1.012 2.705-.006 3.712 1.008 1.008 2.65.994 3.713-.006l.011.012c-.021.02-.044.033-.064.053-1.059 1.059-1.084 2.748-.059 3.775 1.026 1.025 2.717 1 3.775-.059.02-.02.033-.043.053-.064l.011.012c-1 1.062-1.013 2.705-.005 3.713 1.007 1.006 2.649.994 3.711-.006l.006.006c.01-.014.018-.027.029-.039z"
34+
/>
35+
<path
36+
fill="#CCD6DD"
37+
d="M21.277 25.231c.906.905 2.321.979 3.37.261.439-.75.565-1.463.565-1.686-2.207 1.646-4.177.009-4.618-.97-.183.846.039 1.75.683 2.395zm7.299 3.84c.298-.419.529-.824.637-1.098-1.405 1.288-4.091.345-4.905-1.698-.358.95-.175 2.044.571 2.79 1.002 1.002 2.634.994 3.697.006zm3.854 3.595.029-.036c.01-.008.02-.014.028-.022.069-.068.122-.146.181-.22.043-.053.089-.102.128-.156.036-.049.065-.101.097-.152.065-.1.1-.218.155-.324-2.528 1.131-4.415-.788-4.944-1.745-.295.917-.103 1.944.609 2.657 1.006 1.007 2.648.995 3.711-.006l.006.004z"
38+
/>
39+
<path
40+
fill="#E1E8ED"
41+
d="m13.956 12.498.028-.022c.069-.068.122-.146.181-.22.042-.052.088-.101.127-.155.036-.05.065-.101.097-.152 1.42-2.187.489-5.896-2.322-8.707C9.255.43 5.547-.501 3.36.919c-.051.032-.103.061-.153.097-.054.039-.103.085-.155.127-.074.06-.152.112-.22.181-.009.009-.015.02-.022.028-.011.01-.025.019-.036.03l.005.005c-1 1.062-1.012 2.705-.005 3.712 1.007 1.007 2.65.995 3.712-.005l.011.011c-.021.019-.044.033-.064.053-1.059 1.059-1.084 2.748-.058 3.775 1.026 1.027 2.716 1.001 3.775-.058.02-.02.033-.043.053-.064l.011.011c-1 1.062-1.013 2.705-.005 3.712 1.007 1.007 2.649.995 3.711-.006l.005.006c.011-.011.02-.024.031-.036z"
42+
/>
43+
<path
44+
fill="#CCD6DD"
45+
d="M2.773 5.1c.906.906 2.321.98 3.37.26.439-.75.564-1.462.564-1.685-2.206 1.645-4.177.007-4.617-.972-.183.847.039 1.752.683 2.397zm7.301 3.838c.297-.419.528-.822.635-1.096-1.406 1.288-4.092.344-4.905-1.699-.358.95-.175 2.044.57 2.79 1.004 1.003 2.637.994 3.7.005zm3.851 3.597c.011-.011.02-.024.03-.036l.028-.022c.069-.068.122-.146.181-.22.042-.052.088-.101.127-.155.036-.05.065-.101.097-.152.065-.1.1-.219.155-.325-2.528 1.131-4.415-.787-4.944-1.744-.295.917-.103 1.944.609 2.656 1.007 1.007 2.649.995 3.711-.006l.006.004z"
46+
/>
47+
</svg>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
<svg
2+
class="{{ class ?? '' }}"
3+
style="isolation: isolate"
4+
viewBox=".588 0 500 669.61"
5+
xmlns="http://www.w3.org/2000/svg"
6+
>
7+
<path
8+
d="m319.32 372.11c-28.861 13.939-84.306 113.21-48.898 127.05 31.836 12.446 40.597 70.995 28.598 102.4-12 31.409-25.508 27.902-21.218 7.053s-1.617-58.873-47.255-81.405q-45.638-22.533-31.805-95.682c18.845-84.524 108.94-75.096 125.63-65.863q13.214-11.471 45.508-0.412 82.916 37.602 83.88 103.16 0.964 65.562 40.494 84.845 15.426 12.533-6.749 13.498c-22.175 0.964-61.705-46.279-66.526-83.881q-4.821-37.601-101.24-58.812-8.827-36.149-0.428-51.957zm-188.03-6.856q-82.916 37.602-83.88 103.16-0.964 65.562-40.494 84.845-15.426 12.533 6.749 13.498c22.175 0.964 61.705-46.279 66.526-83.881q4.821-37.601 101.24-58.812 20.247-82.916-50.136-58.813z"
9+
class="light-color-fill"
10+
fill="#f79e9e"
11+
fill-rule="evenodd"
12+
/>
13+
<path
14+
d="m152.17 312.54q-83.979-4.067-73.785-69.818c6.023-38.853 2.626-84.508-9.889-121.66-12.868-38.205-35.376-67.422-67.196-71.016-1.283-0.14-1.219 1.796 3.445 5.202 42.478 33.455 54.466 79.151 29.732 137.73-41.506 98.303-43.004 227.48 50.789 219.62 17.83-1.492 35.767-4.255 50.558-3.518q-12.518 29.403-29.669 54.738c-42.422 62.669-15.185 170.17 7.714 196.68 22.898 26.514 11.087-11.811 8.677-26.996-2.411-15.185-1.138-120.17 46.279-149.44 35.245-21.76 44.286-58.48 58.397-82.493q21.109-16.57 45.827 1.153c5e-3 3e-3 0.01 6e-3 0.014 9e-3 13.743 24.008 23.049 59.915 57.737 81.331 47.417 29.275 48.689 134.26 46.279 149.44s-14.221 53.51 8.677 26.996 50.135-134.02 7.713-196.68q-17.15-25.335-29.668-54.738c14.791-0.737 32.728 2.026 50.558 3.518 93.793 7.851 92.295-121.32 50.789-219.62-24.734-58.581-12.747-104.28 29.732-137.73 4.664-3.406 4.727-5.342 3.445-5.202-31.82 3.594-54.329 32.811-67.197 71.016-12.514 37.155-15.911 82.81-9.888 121.66q9.849 63.526-68.21 69.472 72.08-182.71 29.931-255.59c-43.241-74.772-206.33-76.167-260.32 0q-52.667 74.3 29.527 255.94z"
15+
class="dark-color-fill"
16+
fill="#f05252"
17+
/>
18+
<path
19+
d="m276.91 316.68c0-23.812 27.656-43.145 61.722-43.145 34.065 0 61.721 19.333 61.721 43.145 0 23.813-27.656 43.146-61.721 43.146-34.066 0-61.722-19.333-61.722-43.146zm-175.47 0c0-23.812 27.657-43.145 61.722-43.145s61.722 19.333 61.722 43.145c0 23.813-27.657 43.146-61.722 43.146s-61.722-19.333-61.722-43.146z"
20+
class="light-color-fill"
21+
fill="#f79e9e"
22+
fill-rule="evenodd"
23+
/>
24+
<path
25+
d="m300.56 327.08c2.092-6.366 10.637-35.7 38.348-35.016 27.275 0.673 35.942 27.13 37.65 31.71 1.707 4.58 1.735 10.393-0.872 13.101-2.736 2.842-6.981 2.645-9.761-1.959-4.801-7.953-5.982-24.648-27.017-24.487-19.868 0.153-20.865 17.088-24.839 24.487-2.678 4.986-6.88 7.583-10.72 5.877-3.84-1.707-4.881-7.346-2.789-13.713zm-175.47 0c2.091-6.366 10.637-35.7 38.347-35.016 27.275 0.673 35.943 27.13 37.65 31.71 1.708 4.58 1.736 10.393-0.871 13.101-2.736 2.842-6.982 2.645-9.762-1.959-4.801-7.953-5.981-24.648-27.017-24.487-19.868 0.153-20.865 17.088-24.839 24.487-2.678 4.986-6.88 7.583-10.72 5.877-3.84-1.707-4.88-7.346-2.788-13.713z"
26+
class="dark-color-fill"
27+
fill="#f05252"
28+
fill-rule="evenodd"
29+
/>
30+
</svg>

0 commit comments

Comments
 (0)