Cool Uncool is een interactieve webapplicatie voor het geven van Cool-Uncool sessies tijdens NL DS designers meetups. De focus ligt op front-end technologieën, React, open source ontwikkeling, GitHub-integratie en toegankelijkheid.
- Intuïtieve Slide Navigatie: Navigeer door de slides met de pijltjestoetsen (links/rechts, boven/onder).
- Mobiele Swipe-ondersteuning: Swipe eenvoudig door de slides op mobiele apparaten.
- Maandselector: Wissel tussen maanden met behulp van de maandselector in de footer.
- Dark Mode: Schakel tussen licht- en donker thema met één klik.
- Responsief Ontwerp: Geoptimaliseerd voor verschillende schermgroottes.
- Slide Teller: Bekijk in één oogopslag hoeveel slides er nog volgen.
- Leesbaare URL's: Uit de URL is op te maken in welke maand en jaar de sessie is gegeven of wordt gegeven.
-
Clone de repository:
git clone https://github.com/Ollie-nl/cool-uncool.git -
Navigeer naar de projectmap:
cd cool-uncool -
Installeer afhankelijkheden (met pnpm):
pnpm install -
Start de development server:
pnpm startOpen vervolgens
http://localhost:3000
in je browser.
pnpm start
: Start de development server.pnpm run build
: Bouwt de applicatie voor productie.pnpm test
: Voert tests uit (indien ingesteld).pnpm audit fix
: Probeert bekende kwetsbaarheden te verhelpen.
De slides worden beheerd via maandelijkse JSON-bestanden in src/data/
. De bestandsnaam volgt het patroon:
slides-YYYY-MM.json
YYYY
: Het jaar (bijv.2024
).MM
: De maand (bijv.12
voor december).
[
{
"type": "heading",
"content": "😎 😩 December",
"slug": "start"
},
{
"type": "paragraph",
"content": "![Darth Vader Christmas](/cool-uncool/images/darth-vader-xmas.jpeg) ",
"title": "Text met plaatje. Luke, I am Father Christmas",
"icon": "🎄",
"slug": "star-wars"
},
{
"type": "youtube",
"url": "https://www.youtube.com/embed/dQw4w9WgXcQ",
"title": "Movie #1",
"icon": "💃🏻",
"slug": "Never forget XcQ"
}
]
-
Maak een nieuw bestand aan in
src/data/
: Geef het de naamslides-YYYY-MM.json
, bijvoorbeeldslides-2024-12.json
. -
Voeg je slides toe in JSON-formaat: Zorg ervoor dat elke slide een unieke
slug
heeft. -
Herbuild de applicatie:
pnpm run build
-
De maand wordt automatisch toegevoegd: De maandselector toont nu de nieuwe maand.
De app wordt automatisch gedeployed naar GitHub Pages. De output wordt geplaatst in de docs/ map en GitHub Pages haalt de inhoud direct daaruit.
- Maak een productie build en deploy:
pnpm run deploy
- Website wordt gedeployed op
- pnpm start (Start de development server op localhost)
- pnpm run build (Maakt een productie build en plaatst deze in de docs/ map)
- pnpm run deploy (Voert een build uit en pusht deze naar de main branch voor GitHub Pages)
cool-uncool/
├── public/ # Statische bestanden (favicon, afbeeldingen)
│ ├── images/
│ ├── data/ # JSON data voor slides
│ └── _redirects # Netlify redirect of GH Pages SPA fix
├── src/ # React broncode
│ ├── components/
│ ├── data/ # JSON slide data (alleen lokaal)
│ ├── styles/
│ └── App.js
├── docs/ # Gebouwde productie bestanden (voor GH Pages)
├── generateAvailableMonths.js # Script om beschikbare maanden te genereren
│ └── ... # Overige React-bestanden
├── package.json # Projectafhankelijkheden en scripts
└── README.md # Documentatie
- Geen slides beschikba-r: Zorg dat de JSON-bestanden in public/data/ correct zijn.
- Afbeeldingen laden niet op GH Pages: Controleer of de paden naar afbeeldingen beginnen met /cool-uncool/ in productie.
- 404 op GitHub Pages: Controleer of het _redirects bestand correct wordt gekopieerd naar de docs/ map na elke build.
We gebruiken Semantic Versioning (SemVer) om releases te beheren:
1.0.0 = Major.Minor.Patch Major – Brekende veranderingen Minor – Nieuwe features, backwards-compatible Patch – Bugfixes en kleine updates
git tag v1.0.0
git push origin v1.0.0
git commit -m "feat: Nieuwe maandelijkse slide selector toegevoegd"
git commit -m "fix: Bug verholpen in Dark Mode toggle"
git commit -m "docs: README bijgewerkt met installatie instructies"
git commit -m "chore: GitHub Actions workflow toegevoegd voor CI"
git commit -m "style: Styling aan gebracht"
git tag -a v1.1.0 -m "Release 1.1.0 - Nieuwe slides en dark mode"
git push origin v1.1.0
- Ga naar Releases tab in je repo.
- Klik op Draft new release.
- Kies een tag (v1.1.0) en beschrijf de wijzigingen.
- Klik op Publish.
{
"version": "1.1.0"
}
npm version patch # Kleine bugfix
npm version minor # Nieuwe feature
npm version major # Brekende verandering
git push --follow-tags
Dit project is gelicentieerd onder de GPL-3.0-licentie. Zie het bestand LICENSE voor meer informatie.