Skip to content

shahswiene/LoveSync

Repository files navigation

LoveSync — Date Planner & Shared Diary

LoveSync is a modern web application (React) that helps couples plan dates, share memories, and celebrate milestones. It includes a Next.js frontend with Tailwind CSS and shadcn/ui styling, and a Convex backend for real-time data storage and server functions.

Features

  • Plan and track date ideas with categories, budgets, and scheduling
  • Maintain a shared relationship diary with images and moods
  • Onboarding flow with user profiles and relationship linking
  • PWA-ready service worker and manifest setup

Tech Stack

  • Next.js 15 (App Router) — backend/
  • React — Frontend
  • Tailwind CSS + shadcn/ui — UI components and styles
  • Convex — serverless backend for data, auth, and functions — convex/
  • TypeScript — strict typing and linting

Repository Structure

.
├─ backend/                # Next.js app (App Router, API routes)
│  ├─ app/                 # App routes, layout, providers, SW registrar
│  ├─ public/              # Static assets (manifest.json, service-worker.js)
│  ├─ src/                 # React components & entry points
│  ├─ tailwind.config.cjs  # Tailwind configuration (single source of truth)
│  └─ tsconfig.json        # TypeScript config for Next.js
├─ convex/                 # Convex schema & functions
│  ├─ schema.ts            # Data model definitions
│  ├─ auth.ts              # Auth setup using @convex-dev/auth
│  ├─ *.ts                 # Domain functions (dates, diary, users, etc.)
│  └─ _generated/          # Auto-generated Convex types (ignored in git)
├─ scripts/                # Utility scripts (e.g., VAPID key generation)
├─ .gitignore
├─ eslint.config.js        # Flat ESLint config (includes Next config)
├─ package.json
└─ README.md

Getting Started

  1. Install dependencies
npm install
  1. Environment variables
  • Copy or create backend/.env.local with the following (example):
NEXT_PUBLIC_CONVEX_URL="<your_convex_deployment_url>"
  • Additional variables may be required depending on your deployment/auth setup.
  1. Development
npm run dev
# App will be served from: http://localhost:4000
  1. Production build
npm run build
npm start

Linting & Formatting

  • ESLint (with Next.js rules) is configured via eslint.config.js
  • Type checking is enforced during builds

PWA Notes

  • backend/app/layout.tsx references icons under /pwa/
  • Ensure backend/public/pwa/ contains the appropriate icon sizes to avoid 404s

Security & Auth

  • Authentication is set up through @convex-dev/auth in convex/auth.ts
  • Providers configuration is managed in convex/auth.config.ts

Contributing

  • Use feature branches and conventional commit messages (e.g., feat:, fix:, chore:)
  • Run npm run build before pushing to ensure type and lint checks pass

License

This project is licensed under the Apache-2.0 License.

About

LoveSync is a modern web application (React) that helps couples plan dates, share memories, and celebrate milestones. It includes a Next.js frontend with Tailwind CSS and shadcn/ui styling, and a Convex backend for real-time data storage and server functions.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors