Paul Bailey b73f761308 Implement invitation system with server actions
- Add inviteUserToList: Create invitations with email validation and expiration
- Add getInvitations: Retrieve pending invitations for current user
- Add acceptInvitation: Accept invitation and create collaborator record
- Add declineInvitation: Decline and remove invitation
- Add getCollaborators: List all collaborators for a list
- Add updateCollaboratorPermission: Change collaborator permission level
- Add removeCollaborator: Revoke collaborator access
- Include proper authorization checks and error handling
- Add invitation expiration logic (7 days)
- Implement transaction for atomic invitation acceptance

Requirements: 5.1, 5.2, 5.3, 8.1, 8.5
2025-12-02 00:57:50 +00:00
2025-12-02 00:39:04 +00:00

Ultimate Lists App

A powerful, self-hosted todo list application built with Next.js that works as a Progressive Web App (PWA).

Features

  • 📱 Works as a Safari web app (no App Store needed)
  • 🗄️ Self-hosted with SQLite database
  • ✅ Multiple lists with custom colors
  • 📋 Rich todo items with descriptions, priorities, and due dates
  • 🎨 Clean, responsive design
  • ⚡ Fast server-side rendering

Getting Started

  1. Install dependencies:
npm install
  1. Set up the database:
npm run db:push
  1. Run the development server:
npm run dev
  1. Open http://localhost:3000 in Safari

Adding to Home Screen (Safari)

  1. Open the app in Safari
  2. Tap the Share button
  3. Select "Add to Home Screen"
  4. The app will now work like a native app!

Deployment

Build for production:

npm run build
npm start

The app uses SQLite, so no external database setup is required.

Tech Stack

  • Next.js 14 - React framework with App Router
  • Prisma - Database ORM
  • SQLite - File-based database
  • Tailwind CSS - Styling
  • TypeScript - Type safety
  • Lucide React - Icons
Description
No description provided
Readme 1.3 MiB
Languages
TypeScript 93.4%
JavaScript 4.4%
HTML 1.5%
CSS 0.6%