Projekthandbok för Länksida v1.0, en modererad länkdelningsplattform med dagssidor, kommentarer, rapportering, favoriter och admin/moderatorflöden.
docs/00-Projektoversikt.mddocs/00-Snabbstart.mddocs/00-Beslut.mddocs/00-Versionshistorik.mddocs/25-Business-Rules.mdapi/API-Spec.mdopenapi/openapi.ymldatabase/schema.prismadocs/32-Definition-of-Done.mddocs/33-Systemkonstanter.mddocs/Constants.mddocs/35-Moderation-State-Machine.mddocs/23-Implementation.md
Dokumenten ska läsas enligt denna hierarki när något verkar motsäga något annat:
docs/25-Business-Rules.md= vad systemet ska göra och vilka regler som gäller.docs/33-Systemkonstanter.md= regelkritiska gränsvärden och tidsfönster.database/schema.prisma= datamodellen och databaskontraktet.api/API-Spec.mdochopenapi/openapi.yml= API-kontraktet, mänskligt respektive maskinläsbart. Dessa två ska hållas synkade.adr/= varför större beslut togs.- Övriga dokument = stöd, förklaring och implementation.
Om en affärsregel skiljer sig mellan dokument gäller alltid docs/25-Business-Rules.md. Om API-specifikationen och OpenAPI-filen skiljer sig ska båda korrigeras så att de åter speglar samma kontrakt.
✔ Arkitektur fryst
✔ Databas fryst
✔ API fryst
✔ Dokumentation fryst
Nästa steg:
➡ Implementation
➡ Testning
- ADR-0031 tillagd för immutable
scheduledForefter publicering. - DayPage förtydligad som datumrepresentation; länkar kopplas via
scheduledFor. - Metadata-refresh får aldrig ändra användargenererade data.
docs/Constants.mdtillagd som engelsk alias/samlingssida för systemkonstanter.- API-specen har fått tydlig endpoint-scope-tabell för MVP respektive Post-MVP.
- Skillnaden mellan
hiddenAt,removedAt,archivedAtochdeletedAtär dokumenterad.
MVP omfattar:
- Dagssidor
- Länkinskick
- Favoriter
- Kommentarer
- Rapportering
- Violations
- Appeals
Ingår inte i MVP:
- Trendande
- Taggar
- Pinning
- Boosting
- Adminpanelen använder inte längre aktivt
trendScoreeller trendande länkar i MVP. mostClickeddefinieras som klick på aktuell dagssida.- Klick registreras via LinkShares redirect-endpoint.
- Opublicerade framtida dagssidor är endast synliga för moderatorer och administratörer.
- Modereringshistorik visar som standard endast rollnamn, inte moderatorns användarnamn.
- Implementation-status har kompletterats med tydlig statusmatris.
- Förtydligade att varje datum endast får ha en dagssida.
- Förtydligade retry-krav om publiceringsjobbet misslyckas kl. 00:00.
- Förtydligade att felaktiga eller återkallade violations inte räknas som aktiva och att status räknas om.
- Metadata-fallback ändrad till URL som sista utväg.
- Revisionslogg/adminlogg är uttryckligen append-only, ej redigerbar och endast läsbar.
- Lade till Current Project Status i README.
docs/33-Systemkonstanter.mdär tillagd som single source of truth för gränsvärden.- Modereringsstatus har fått state machine i
docs/35-Moderation-State-Machine.md. - Dagssidor stödjer uttryckligen retroaktiv publicering utan att påverka senare datum.
- Favoriter till borttagna länkar tas bort automatiskt.
- Metadata-cache och refresh-regel är dokumenterad.
- Klickstatistik räknar varje redirect/click-request i MVP, utan deduplicering.
- Definition of Done kräver ADR-referenser.
- README förtydligar dokumenthierarkin.
- Business Rules markeras tydligare som normativ källa.
docs/23-Implementation.mdär ersatt avdocs/23-Implementation.md.docs/32-Definition-of-Done.mdär tillagd.adr/README.mdär tillagd som ADR-index.- Versionshistoriken markerar v21 som dokumentationsfreeze före implementation.
- Systemterminologin är rensad: det heter alltid
Violation. - Reputation är förenklat till
approvedLinksCount. - Trendande är flyttat till post-MVP.
- Rate limits är specificerade.
- Dagssideflödet är specificerat.
- Favoriter kan inte exporteras.
- Klickstatistik räknas per användare.
- README, adminpanel och violation/restriction-begrepp är förtydligade.
- Spärrlogik uttrycks konsekvent som summan av aktiva
Violation.points.
Varje kalenderdatum representerar exakt en dagssida. Dagssidan existerar även om den innehåller noll publicerade länkar.