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.
![image](https://private-user-images.githubusercontent.com/65262710/311898700-2581dc8a-fd51-4e51-bf1b-f37e0ae3af42.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwMDk1MjcsIm5iZiI6MTczOTAwOTIyNywicGF0aCI6Ii82NTI2MjcxMC8zMTE4OTg3MDAtMjU4MWRjOGEtZmQ1MS00ZTUxLWJmMWItZjM3ZTBhZTNhZjQyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA4VDEwMDcwN1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWJjYWU2NmZjYjZjODBmNGJjNmM4NjRlM2QzODcyMWQ2MTYzOWM4OWMwMDhlZjYzODg2NzU1NmUxMWQwNTRkOGImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.d48MjWt3qIB5Y43bXA016OfXOKem-WloCC1txlmAgO8)
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)