Welcome to the KulKul Fellowship Onboarding & Challenge Repository! This repository contains both the fellowship onboarding wiki (powered by Astro Starlight) and the candidate sandbox coding challenge (powered by Vite & React).
This repository contains two main areas of interest:
- The Fellowship Wiki (Root Directory): For onboarding instructions, rules, and the fellows directory.
- The Sandbox Application (
/sandboxDirectory): A React app containing bugs and challenges that candidates must solve.
All command line executions must be prefixed with uv run as per our workspace configuration.
To install dependencies for the documentation wiki:
SHARP_IGNORE_GLOBAL_LIBVIPS=1 uv run npm installTo start the wiki local development server in the background:
uv run npx astro dev --backgroundThe wiki will run on http://localhost:4321.
- Check Server Status:
uv run npx astro dev status
- Check Server Logs:
uv run npx astro dev logs
- Stop the Server:
uv run npx astro dev stop
The sandbox is a simple task-management application where candidates will solve practical challenges.
cd sandbox
uv run npm installTo run the sandbox application locally (frontend + Netlify functions backend API):
uv run npx netlify devThe server will run on http://localhost:8888. It automatically emulates Netlify functions and proxies /api/* requests.
Candidates can verify if they solved the coding challenge bugs correctly by running:
uv run npm run testThis executes the Vitest test suite and outputs the results.
To deploy the Astro Starlight documentation portal on Netlify, follow these steps:
- Ensure the
.gitmodulesfile in the root directory uses the public HTTPS URL for the sandbox (this has already been set up in our repository):url = https://github.com/kulkultech/fellowship-management-system.git - Commit and push your code to your GitHub repository:
git add .gitmodules git commit -m "chore: use HTTPS url for sandbox submodule to enable Netlify builds" git push origin main
- Log in to your Netlify Dashboard.
- Click Add new site -> Import an existing project.
- Select GitHub as your git provider and authorize Netlify.
- Select the
kulkultech/fellowshiprepository. - In the Site configuration window, configure the following settings:
- Base directory: (Leave blank - root directory)
- Build command:
npm run build - Publish directory:
dist
- Click Show advanced settings and define these Environment Variables:
SHARP_IGNORE_GLOBAL_LIBVIPS=1(prevents sharp installation crashes on Netlify's build container)NODE_VERSION=20(ensures Node LTS compatibility)
- Click Deploy Site. Netlify will automatically pull the submodule, compile the Astro pages, generate search indexes, and host your live wiki portal!