-
v1.0.0
Stablereleased this
2026-02-20 02:13:43 -08:00 | 25 commits to main since this releaseNaomi's Library v1.0.0 - Initial Release
Welcome to the first release of Naomi's Library! A comprehensive personal media tracking platform with social features, achievements, and privacy controls.
🌟 Core Features
Media Management
Track and manage your personal media collection across six categories:
- Books: Track reading progress, ratings, series, and time spent
- Games: Monitor gaming sessions with platform tracking and completion status
- Music: Catalogue albums, singles, and EPs with listening history
- Art: Document art pieces with artist information and viewing dates
- Shows: Track TV shows and anime with episode progress
- Manga: Follow manga series with volume and chapter tracking
Key Features:
- Rich metadata support (titles, authors/artists, ratings, notes, tags, links)
- Cover image support for visual browsing
- Series tracking (Books and Games)
- Time tracking across all media types
- Multiple status states (Want to Try, In Progress, Completed, Retired)
- Custom date tracking (added, started, completed, finished)
Social Features
User Suggestions
- Submit suggestions for new media additions to the library
- Rich text formatting support with markdown
- Approval workflow for library curator review
- Suggestion status tracking (Pending, Approved, Rejected)
Likes & Comments
- Like individual media items to show appreciation
- Rich HTML comment system with markdown support
- Comment editing and deletion (own comments only)
- Admin moderation capabilities
Achievements System
60+ achievements across 5 categories:
- Suggestion Achievements (12): First Steps, Persistent, Acceptance Mastery, Perfect Pitch
- Like Achievements (18): Enthusiast, Fan, Book Lover, Cinephile, Diverse, Art Appreciator, Gamer, Music Lover, Show Enthusiast, Manga Fan, Completionist, Well-Read, Cultured
- Comment Achievements (10): Conversationalist, Critic, Insightful, Prolific
- Engagement Achievements (14): Social Butterfly, Community Builder, Daily Visitor, Consistent, Dedicated, Streak Master
- Report Achievements (8): Vigilant, Guardian, Sentinel, Protector
Achievement Features:
- Five tiers: Bronze, Silver, Gold, Platinum, Diamond
- Points system (10-500 points per achievement)
- Progress tracking with visual indicators
- Real-time achievement unlocking with toast notifications
- Achievement showcase on user profiles
- Streak tracking for daily engagement
Activity Feed
Track recent community activity:
- New suggestions submitted
- Media items liked
- Comments posted
- Achievements earned
- Privacy-respecting (follows user profile visibility settings)
- Real-time updates with HTML comment rendering
Leaderboards
Four competitive categories:
- Most Achievements: Total achievement points earned
- Most Comments: Community engagement through discussions
- Most Likes: Appreciation given to library items
- Most Suggestions: Contributions to library expansion
Leaderboard Features:
- Top 10 rankings per category
- User profile integration
- Privacy controls (respects profilePublic setting)
- Real-time updates
Content Moderation
Reporting System
- Report inappropriate comments with seven reason categories:
- Inappropriate Content
- Harassment
- Spam
- Impersonation
- Offensive Name
- Malicious Links
- Other
- Admin-only report review dashboard
- Four status states: Pending, Reviewed, Dismissed, Action Taken
- Contextual reporting with entity and comment tracking
Admin Controls
- Comment deletion with cascade (removes associated reports)
- User account management
- Report resolution workflow
- Media item management (CRUD operations)
User Experience
About Page
- Project information and purpose
- Credits and acknowledgments
- Privacy information
- Technology stack disclosure
Responsive Design
- Mobile-first approach
- Beautiful gradient background (purple, pink, blue spectrum)
- Card-based layouts with hover effects
- Smooth animations and transitions
- Custom colour scheme (Witch Rose, Witch Moon, Witch Dusk, etc.)
Navigation
- Intuitive header with dropdown menu
- Footer with quick links
- Entity detail pages for all media types
- Breadcrumb navigation
- Toast notifications for user feedback
Security & Privacy
Authentication & Authorization
- Secure username/password authentication with bcrypt hashing
- JWT-based session management
- Role-based access control (Admin/User)
- Profile privacy controls (public/private)
Security Headers
- Content Security Policy (CSP) with Angular support
- HTTP Strict Transport Security (HSTS) with 1-year max age
- Referrer Policy: strict-origin-when-cross-origin
- Frame protection: deny
- Cross-Origin Resource Policy: cross-origin
Input Validation
- URL validation (http/https only, blocks dangerous protocols)
- String length limits across all fields
- Rating validation (1-10 scale)
- Slug format validation
- SQL injection prevention
- XSS protection through sanitization
Accessibility (WCAG 2.1 Level AA)
Keyboard Navigation
- Skip-to-main-content link (Tab to activate)
- Full keyboard support for all interactive elements
- Focus indicators (3px outline) on all focusable elements
- Modal and dropdown focus trapping
- Escape key support for closing overlays
Screen Reader Support
- Comprehensive ARIA labels and landmarks
- Descriptive alt text for images
- Live regions for dynamic content
- Semantic HTML structure
- Form labels and error messages
Visual Accessibility
- High contrast mode support
- Prefers-reduced-motion support
- Sufficient colour contrast ratios
- Clear focus indicators
- Responsive text sizing
🛠️ Technical Stack
Frontend
- Framework: Angular 21 with standalone components
- State Management: Angular Signals
- Routing: Angular Router with lazy loading
- Styling: SCSS with custom design system
- HTTP Client: Angular HttpClient with interceptors
- Build Tool: Nx monorepo with Angular DevKit
Backend
- Framework: Fastify with TypeScript
- Database: MongoDB with Prisma ORM
- Authentication: JWT with bcrypt password hashing
- Validation: Custom validation utilities
- Security: Helmet.js with CSP
- CORS: Configured for frontend integration
Development
- Monorepo: Nx workspace
- Language: TypeScript throughout
- Linting: ESLint with @nhcarrigan/eslint-config
- Testing: Jest (API) + Vitest (shared-types)
- E2E: Cypress
- Version Control: Git
📊 Statistics
- Total Tests: 123 (all passing)
- Security Rating: 9/10
- Accessibility: WCAG 2.1 Level AA compliant
- Media Types: 6 categories
- Achievements: 62 unique achievements
- Achievement Points: 10-500 per achievement
- Social Features: Suggestions, Likes, Comments, Reports
- Code Coverage: Comprehensive validation across all services
🚀 Getting Started
Prerequisites
- Node.js 18+ (managed with nvm)
- MongoDB instance
- 1Password CLI (for secrets management)
Installation
- Clone the repository
- Install dependencies:
pnpm install - Set up MongoDB database
- Configure
prod.envwith 1Password vault references - Generate Prisma client:
cd api && pnpm prisma generate - Build the application:
pnpm build
Running
- Development:
op run --env-file=prod.env -- pnpm dev - Production:
op run --env-file=prod.env -- node dist/apps/api/main.js - Tests:
pnpm test - Linting:
pnpm lint
📝 License
Naomi's Public License
👥 Credits
Development: Hikari (AI Assistant)
Concept & Direction: Naomi Carrigan
Collaboration: Built together through pair programming
🌸 This release represents the culmination of extensive development focused on creating an inclusive, accessible, and secure media tracking platform with rich social features. We hope you enjoy using Naomi's Library! 💜
Downloads
generated from nhcarrigan/template