Rewrite the calendar frontend in Next.js
Replaces the Angular 18 app with Next.js 16 / React 19 / Tailwind 4 / shadcn, the same stack and design system as nachklang-feedback, planned in docs/rewrite-plan.md. - Admin: all calendars in one mobile-friendly list (month groups, calendar chips, Kommend/Vergangen/Alle, search, sort, filters in the URL), an edit sheet for create/edit/duplicate/delete, publish confirmation, and an "Abonnieren" dialog with subscription links for every calendar. - Public landing page: subscribe links from env instead of hardcoded, plus the next public events, server-rendered and revalidated every 5 minutes. - All times handled explicitly as Europe/Berlin; whole-day events stored as 00:00-23:59. Fixes carried over from the Angular app: the move dialog leaking a cancelled calendar change, saves that looked saved when they failed, in-place Date mutation, and duplicated calendar-id mappings. - Same shared-session auth as before (proxy.ts gate, /admin/me, 401 vs 403). - 112 Vitest tests over lib/; docs in docs/ (architecture, features, gotchas, API wish list, deployment). Needs the API branch feature/calendar-ical-escaping-subscriptions deployed first (GET /calendar/events/subscriptions). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
138 files changed
+15942
-24010
No files matched your search
@@ -1,27 +1,31 @@
|
||||
# NachklangCalendar
|
||||
# Nachklang Calendar
|
||||
|
||||
This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 14.2.1.
|
||||
Event calendar for Nachklang e.V.: a public landing page for subscribing to the calendar, and an
|
||||
admin area (`/admin`) for editing events in all calendars.
|
||||
|
||||
## Development server
|
||||
Next.js (App Router) + TypeScript + Tailwind + shadcn, the same stack as `nachklang-feedback`.
|
||||
Rewritten from Angular in September 2026 ([docs/rewrite-plan.md](docs/rewrite-plan.md)).
|
||||
|
||||
Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The application will automatically reload if you change any of the source files.
|
||||
Documentation: [architecture](docs/architecture.md) · [features](docs/features.md) ·
|
||||
[gotchas](docs/gotchas.md) · [deployment](docs/deployment.md) · [API wish list](docs/api-wishlist.md)
|
||||
|
||||
## Code scaffolding
|
||||
## Development
|
||||
|
||||
Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`.
|
||||
```bash
|
||||
cp .env.local.example .env.local # then adjust if needed
|
||||
npm install
|
||||
npm run dev # http://localhost:4200
|
||||
```
|
||||
|
||||
## Build
|
||||
Port 4200 is not arbitrary: it is the port the API's better-auth origins and the admin app's
|
||||
redirect allow-list trust. Another port breaks sign-out and the return redirect after sign-in.
|
||||
|
||||
Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory.
|
||||
The admin area needs the API (`:3000`) and the admin app (`:3002`) running locally.
|
||||
|
||||
## Running unit tests
|
||||
## Other scripts
|
||||
|
||||
Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io).
|
||||
|
||||
## Running end-to-end tests
|
||||
|
||||
Run `ng e2e` to execute the end-to-end tests via a platform of your choice. To use this command, you need to first add a package that implements end-to-end testing capabilities.
|
||||
|
||||
## Further help
|
||||
|
||||
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
|
||||
```bash
|
||||
npm run build # production build (output: standalone; see docs/deployment.md)
|
||||
npm run lint
|
||||
npm test # Vitest, pure logic in lib/
|
||||
```
|
||||
Reference in new issue
Block a user