Back

logo

GKSS Website

GKSS Portal

By Lethabo Maepa

Rank: #3

Links

GitHubLive Site

GKSS Website


Welcome to the official GKSS Website repository. This is a modern, full-stack SvelteKit web application styled with Tailwind CSS and DaisyUI. Supabase handles backend services including authentication, database, and storage.
This project is maintained under the MIT License and will be made public to encourage collaboration. Contributions are welcome — all code changes are reviewed before being merged.
šŸš€ Tech Stack
  • SvelteKit — Frontend Framework
  • Tailwind CSS — Utility-first Styling
  • DaisyUI — Prebuilt CSS UI Components
  • Supabase — Backend-as-a-Service (PostgreSQL, Auth, Realtime, Storage)
  • Docker — Local containerized development
āš™ļø Project Setup
Prerequisites
1. Clone the Repository
git clone https://github.com/NWU-VAAL-GKSS/nwu_vaal_gkss.git
cd nwu_vaal_gkss

2. Install Dependencies
npm install

3. Start SvelteKit (Frontend)
npm run dev

App will be available at: http://localhost:5173
If you visit http://localhost:5173, the app will probably show a 404 or 500 page, This happens because the backend is not running, so to run the backend, read the instructions below
šŸ—ƒļø Backend: Supabase (Local)
We use Supabase in Docker to provide a self-contained local development backend, so make sure docker is running on your machine.
1. Install Supabase CLI
npm install -g supabase

2. Start Local Supabase
npx supabase start

This starts:
  • Supabase Auth
  • PostgreSQL
  • Storage
  • Studio (web dashboard)
Default ports:
  • Supabase API: http://localhost:54321
  • Studio: http://localhost:54323
3. Setup .env.local
Create a .env.local in the project root then copy and paste:
PUBLIC_SUPABASE_URL='http://localhost:54321'
PUBLIC_SUPABASE_ANON_KEY='your-local-anon-key'

  • Anon keys are printed in the terminal when you run npx supabase start. 
  • Replace your-local-anon-key with the value of the anon key printed in your terminal
  • Once all that is done, the app will be running smoothly.
4. Supabase Client
The Supabase client is already configured inside the project. No need to create a new client — simply import it where needed.
šŸ“ Project Structure
src/
ā”œā”€ā”€ routes/                 # Page routes
│   ā”œā”€ā”€ +page.svelte        # Home page
│   ā”œā”€ā”€ +layout.svelte      # Layout template for all pages under a pathname
│   ā”œā”€ā”€ +page.server.js     # This page runs on the server, see svelteKit docs
│   └── team/+page.svelte   # Team page
ā”œā”€ā”€ components/             # Reusable UI components
│   ā”œā”€ā”€ Header.svelte
│   ā”œā”€ā”€ Footer.svelte
│   └── Card.svelte
ā”œā”€ā”€ api/ 		    # All api routes
|   ā”œā”€ā”€ cities/	    	    # An example cities api route
|       ā”œā”€ā”€ server.js       # The required file for the api logic, see sveltekit api docs
ā”œā”€ā”€ lib/                    # Supabase clients and utilities
ā”œā”€ā”€ static/ 		    # Public assets
ā”œā”€ā”€ app.html                # Entry HTML template
ā”œā”€ā”€ app.css                 # Global CSS (Tailwind config)

āœļø How to Contribute
Content Changes
Edit the appropriate .svelte file inside src/routes/.
  • Home: src/routes/+page.svelte
  • About: src/routes/about/+page.svelte
Add a New Page
  1. Create a folder in src/routes/ (e.g. events)
  2. Add a +page.svelte file with your content.
šŸ“¦ Common Commands

Command Description | npm run dev  | Start frontend dev server
| npm run build  | Build frontend for production
| npm run preview  | Preview production build
| npx supabase start  | Start Supabase in Docker locally
🧠 Contributor Notes
  • Read how to contribute
  • All changes must go through Pull Requests and be reviewed before merging.
  • Feature branches should be prefixed with your initials or team (e.g., ts-feature-header)
  • Use semantic commits if possible.
  • Never commit .env.local or secret keys.
šŸ“œ License
This project is open-sourced under the MIT License.
See LICENSE for full terms.
šŸ“š Docs & Resources
šŸ¤ Maintainers
This repository is actively maintained. Code reviews are strict to ensure project health, scalability, and security. If you'd like to become a project lead, speak with a current maintainer.

Loading comments...

Discover Projects Courses Challenges