|
|
1c977c4743
|
feat(frontend): API client modules + backend GET /api/cards/:id
|
2026-05-20 21:12:38 +02:00 |
|
|
|
4a382b5dd7
|
feat(backend): serve built frontend in production
|
2026-05-20 21:08:06 +02:00 |
|
|
|
ea45f6fcaf
|
feat(backend): excel import and export
|
2026-05-20 21:06:44 +02:00 |
|
|
|
d60ec34501
|
feat(backend): stats service and routes
|
2026-05-20 21:03:39 +02:00 |
|
|
|
5de988d23b
|
feat(backend): sessions routes
|
2026-05-20 20:59:48 +02:00 |
|
|
|
9ed5fc39bd
|
feat(backend): session engine with Leitner integration
|
2026-05-20 20:56:32 +02:00 |
|
|
|
5468b7c172
|
feat(backend): cards CRUD service and routes
|
2026-05-20 20:51:42 +02:00 |
|
|
|
fcad3d252e
|
fix(lessons): cascade delete descendants in service (no FK on parent_id)
|
2026-05-20 20:48:42 +02:00 |
|
|
|
8af8ad54fa
|
feat(backend): lessons CRUD service and routes
|
2026-05-20 20:47:43 +02:00 |
|
|
|
3ff79b252c
|
test(backend): in-memory db helper
|
2026-05-20 20:44:34 +02:00 |
|
|
|
6283992004
|
fix(db): non-null assertions in seed for noUncheckedIndexedAccess
|
2026-05-20 20:43:17 +02:00 |
|
|
|
dc64a08320
|
feat(backend): leitner algorithm with tests
|
2026-05-20 20:42:41 +02:00 |
|
|
|
1584901c0a
|
feat(db): drizzle schema, migrations, and seed
|
2026-05-20 20:40:00 +02:00 |
|
|
|
d13af79940
|
feat(backend): bootstrap express app with error handling
|
2026-05-20 20:36:55 +02:00 |
|