Future website of the club Helmstedter Chor- und Singschule
Find a file
2026-02-13 00:01:54 +01:00
.vscode added tailwind forms 2026-02-08 00:33:48 +01:00
drizzle Fixed typo in db 2026-02-11 21:25:35 +01:00
e2e Removed demo test files for now 2025-05-22 21:08:22 +02:00
src Removed old customize path 2026-02-13 00:01:54 +01:00
static Footer rework 2026-02-07 22:10:18 +01:00
.dockerignore Adjusted .dockerignore 2025-05-04 14:25:48 +02:00
.editorconfig Updated editorconfig 2025-05-17 15:36:18 +02:00
.env.example Added upload path to .env 2026-02-11 19:02:11 +01:00
.gitignore Added create media Form 2026-02-11 22:30:20 +01:00
.npmrc Initial commit 2024-10-20 18:03:27 +02:00
.prettierignore Updated all dependencies 2026-02-04 14:18:54 +01:00
.prettierrc added tailwind forms 2026-02-08 00:33:48 +01:00
Dockerfile Update Critical security updates 2026-02-13 00:01:53 +01:00
drizzle.config.ts Updated all dependencies 2026-02-04 14:18:54 +01:00
entrypoint.sh Made a default database file 2025-05-22 21:58:32 +02:00
eslint.config.js Made 0 and 1 no magic numbers 2026-02-09 21:33:35 +01:00
LICENSE.md Added LICENSE.md 2025-05-09 16:29:08 +02:00
mise.toml Replaced nix flake with mise 2026-02-07 23:40:42 +01:00
package.json Added simple seed 2026-02-10 21:00:30 +01:00
playwright.config.ts Migrated to new file structure 2025-04-29 16:44:34 +02:00
pnpm-lock.yaml Update Critical security updates 2026-02-09 12:01:09 +00:00
pnpm-workspace.yaml added tailwind forms 2026-02-08 00:33:48 +01:00
README.md Reworked some parts of the readme 2026-02-13 00:01:54 +01:00
renovate.json formatting 2026-02-08 00:17:52 +01:00
svelte.config.js Updated all dependencies 2026-02-04 14:18:54 +01:00
tsconfig.json Updated all dependencies 2026-02-04 14:18:54 +01:00
vite.config.ts Updated all dependencies 2026-02-04 14:18:54 +01:00

HCSS Website

A modern, low-maintenance website for the Helmstedter Chor- und Singschule e.V. (HCSS) designed to replace the old site with a solution that simplifies media and event management.

Overview

This project serves as the official website for HCSS e.V. It was developed to reduce maintenance overhead, particularly when adding new media content or events. The website features a clean, responsive design with an intuitive admin interface for content management.

Technology Stack

This project utilizes modern web technologies to ensure performance, reliability, and ease of maintenance:

TODO

  • Redesign the About component
  • Add Event creation
  • Add Media, Event and Content customizations
  • Add videos and audio to media types
  • Fill in the placeholder texts
  • Add Event page with past and future events
  • Add Media page with all the uploaded media
  • Create Docker image/compose file
  • Create CI/CD pipeline
  • Implement image optimization (instead of only accepting webp)
  • Add Open Graph tags
  • Get Datenschutzerklären and Impressum and add it
  • Add custom error page

Features

  • Responsive design that works across desktop and mobile devices
  • Simple content management system for easily updating website sections
  • Event announcement management
  • Media gallery for photos
  • Admin panel for content management
  • Authentication system

Getting Started

Prerequisites

  • Node.js (v22.10 is recommended)
  • pnpm (recommended package manager)

Installation

  1. Clone the repository:

    git clone https://git.eiflerstrom.de/IC3P3/hcss-website.git
    cd hcss-website
    
  2. Install dependencies:

    pnpm install
    
  3. Set up environment variables:

    • Create a .env file with the following variables:

      DATABASE_URL=./data.db
      
  4. Initialize the database:

    pnpm db:migrate
    

Development

Start the development server:

pnpm run dev

This will start the development server at http://localhost:5173.

Building for Production

Build the project for production:

pnpm run build

Preview the production build:

pnpm run preview

Database Management

This project uses Drizzle ORM with SQLite. Database schema changes are managed using Drizzle Kit.

Apply schema changes to the database:

pnpm run db:generate
pnpm run db:migrate

Explore and manage your database with Drizzle Studio:

pnpm db:studio

Content Management

The admin panel can be accessed at /admin (login required). From here, you can:

  • Create and manage events
  • Upload and organize media
  • Update site content by changing images in different sections
  • Link media items to events

Testing

The project includes both unit and end-to-end testing:

Run unit tests:

pnpm run test:unit

Run end-to-end tests:

pnpm run test:e2e

Run all tests:

pnpm run test

Code Quality

Maintain code quality with the following commands:

Format code:

pnpm run format

Lint code:

pnpm run lint

# For checking some more rules
pnpm run lint:strict

Svelte diagnostics:

pnpm check

# OR to run it constantly
pnpm check:watch