# Lapikud External Website



Welcome! This is the public-facing website for Lapikud. It's a learning project. If something breaks, that's totally fine. You just get to learn more about git.
Materials and design files are on **Google Drive β Lapikud β Tarkvara β VΓ€liveeb**
---
## π How to help
You don't need to write code to contribute!
### Option 1 β Report something
Found a bug, typo, or something missing? [Open an issue](https://github.com/Lapikud/lapikud.github.io/issues) and describe what's wrong. That's already super helpful.
### Option 2 β Fix something yourself
1. **Fork** this repo (button in the top right on GitHub β it copies the project to your account)
2. Make your changes
3. Open a **pull request** back to this repo
---
## π οΈ Setting up your dev environment
### What you need first
- [Node.js](https://nodejs.org/) β v20.19 or higher; use the current **LTS version** when possible
> Node.js comes with `npm` included, so you don't need to install that separately.
---
### Don't have a code editor yet?
If you don't have a preferred code editor, [VSCode](https://code.visualstudio.com/) is a solid choice. Download and install it, and you're good to go.
---
### Windows? Set up WSL first (recommended)
WSL lets you run Linux commands on Windows, which makes everything smoother.
π WSL setup steps
**Step 1** β Enable WSL. Run these two commands in PowerShell as Administrator (this enables the necessary Windows features):
```bash
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
```
**Step 2** β Set WSL to version 2 (the better one):
```bash
wsl --set-default-version 2
```
**Step 3** β Install [Ubuntu from the Microsoft Store](https://apps.microsoft.com/store/detail/ubuntu/9NBLGGH4MSV6)
> β οΈ If WSL doesn't work, check that **Virtualization** is enabled on your machine: open Task Manager β Performance tab β look for "Virtualization: Enabled"
---
### Installation
**1. Clone the repo** β this downloads the project to your computer:
```bash
git clone https://github.com/Lapikud/lapikud.github.io.git
cd lapikud.github.io
```
**2. Install dependencies** β this installs the exact package versions recorded by the project:
```bash
npm ci
```
**3. Optimise images** β the optimised image variants are not stored in the repo, so you need to generate them locally before running the site:
```bash
npm run optimise
```
> You only need to run this once after cloning, and again whenever you add or change images in any `original/` folder.
**4. Start the dev server** β this runs the site locally so you can see your changes live:
```bash
npm run dev
```
Then open the URL it gives you (usually `http://localhost:5173`) in your browser. π
---
## π§ How the project fits together
The site is a Vue 3 single-page application built with Vite. Vue starts in `src/main.js`, which mounts `src/App.vue`. The app keeps its intentionally small custom router and translation system rather than introducing larger framework plugins.
- `src/routes/` contains the page components and the bilingual public route table.
- `src/components/` contains reusable UI building blocks; layout primitives live in `src/components/layout/`.
- `src/layout/` contains the site-wide navigation and footer.
- `src/lib/` contains routing, translations, image-path helpers, and the shared YAML loader.
- `src/lib/locales/{est,en}/` contains escaped JSON translation data for each language.
- `public/_data/` contains editable YAML for members, mentors, workshops, projects, partners, and pricing.
- `public/assets/` contains source assets; generated image variants remain ignored.
- `.storybook/` and `src/stories/` provide isolated Vue component previews.
Page components use Vue's `