This repo contains the code that runs the new cubeclubs.nz. You can view the site here.
-
Built with SvelteKit and uses Prisma + Kysely with PostgreSQL for the backend
-
The user interface and all components used are written from scratch. No templates are used.
-
This project addresses the countless issues with the original poorly written site, adds new features and improves the overall user experience.
-
The new schema has been completely rewritten: it stores around 70% less data compared to the original.
-
Migration scripts can be viewed here.
CubeClubs NZ is GPLv3 licensed.
If you want to help out, please view our contributing guide.
cubeclubs ├── prisma │ └── schema.prisma (the database schema) ├── scripts │ └── ... (some scripts to reduce size of fonts) ├── src │ ├── app.d.ts │ ├── app.html │ ├── lib │ │ ├── assets (icons, logos, etc) │ │ │ ├── ... │ │ ├── components (custom svelte components, eg buttons, forms etc) │ │ │ ├── ... │ │ ├── data (convenient data to work with backend) │ │ │ ├── ... │ │ ├── db (Kysely configuration and files) │ │ │ ├── ... │ │ ├── prisma.ts (initialises the prisma client) │ │ ├── utils.ts (universal utility functions) │ │ └── utilsServer.ts (server utility functions) │ ├── routes │ │ ├── (admin) (protected admin routes, dashboard) │ │ │ ├── dashboard │ │ │ │ ├── ... │ │ ├── (app) (the primary app, inherits root layout with tab bar) │ │ │ ├── ... │ │ └── (auth) (login, signup, recover-account and logout routes) │ │ ├── ... │ └── styles (all styles used throughout the app, imported by root layout + grouped layouts) │ ├── components.css ├── (for components, eg tables, inputs etc) │ └── globals.css └── (defines global css variables, sets colours, fonts, etc) └── static (static resources, favicon, landing page assets)