Version: 1.0 Date: 2026-02-27 Status: Draft
HeartLink is a matchmaking web and mobile application designed to connect individuals seeking romantic relationships. The platform enables users to create rich profiles with photos, discover potential matches, and engage in meaningful conversations. This document outlines the functional and non-functional requirements, design concepts, tech stack, and assumptions governing the development of HeartLink.
HeartLink provides a user-friendly matchmaking experience where individuals can:
The system consists of a React web frontend, a React Native mobile app, a FastAPI backend, and a MySQL relational database, with media storage for user-uploaded photos.
| Persona | Description |
|---|---|
| Guest | An unauthenticated visitor exploring the platform before signing up. They can view marketing content but cannot access profiles or matching features. |
| User | A registered and authenticated member actively using the platform to find matches. They can manage their profile, browse others, match, and chat. |
| Admin | A platform operator with elevated privileges to moderate content, manage users, review reports, and monitor platform health. |
| Role | Color | Hex |
|---|---|---|
| Primary | Warm Rose | #E8556D |
| Secondary | Soft Blush | #F9A8B8 |
| Accent | Deep Crimson | #C0233A |
| Background (Light) | Ivory White | #FFF8F9 |
| Background (Dark) | Midnight Plum | #1A0A12 |
| Text Primary | Charcoal | #2D2D2D |
| Text Secondary | Muted Mauve | #9E7B85 |
| Success | Sage Green | #6DBF8A |
| Error | Coral Red | #E8556D |
Playfair Display — elegant, romantic serifInter — clean, modern, highly readableLato — light weight for captions and tagsRomantic yet modern — a warm palette of rose and blush tones against clean ivory whites. Dark mode uses deep plum/midnight backgrounds to create an intimate, luxurious feel. Card-based UI with soft drop shadows, rounded corners (border-radius: 20px), and subtle gradient overlays on photo cards.
The homepage is not a page — it is a night sky.
When a user first lands on HeartLink, they are greeted by a deep midnight-to-plum gradient sky that slowly breathes — subtly pulsing lighter and darker, as if alive. Scattered across this sky are floating circular profile photo bubbles of varying sizes, each glowing softly with a warm rose halo.
Here is exactly what the user sees and experiences:
scale: 0.97), photo cards cast dynamic drop shadows that shift with drag direction, and unread message badges bounce with a gentle heartbeat animation.This design turns the matchmaking experience into something cinematic — it doesn't feel like an app, it feels like fate.
| ID | Requirement | Detail |
|---|---|---|
| NFR-01 | Performance | Page load time < 2 seconds; API response < 300ms for 95th percentile |
| NFR-02 | Scalability | System must support up to 100,000 concurrent users |
| NFR-03 | Availability | 99.9% uptime SLA; zero-downtime deployments |
| NFR-04 | Security | All data in transit encrypted via TLS 1.3; passwords hashed with bcrypt |
| NFR-05 | Privacy | GDPR-compliant; users can export and delete all personal data |
| NFR-06 | Media Storage | Profile photos optimized and served via CDN; max upload size 10MB per photo |
| NFR-07 | Responsiveness | Full mobile-responsive web UI; native mobile app for iOS and Android |
| NFR-08 | Moderation | Automated photo screening for inappropriate content before display |
| NFR-09 | Accessibility | WCAG 2.1 AA compliance across all UI components |
| NFR-10 | Localization | Support for multiple languages (English first; extensible i18n architecture) |
| Layer | Technology | Reason |
|---|---|---|
| Web App | React (with Vite) | Fast, component-based SPA for the web platform |
| Mobile App | React Native | Cross-platform iOS & Android from shared codebase |
| Styling | Tailwind CSS | Utility-first rapid UI development |
| Animation | Framer Motion | Smooth, physics-based animations for swipe cards, transitions |
| State | Zustand | Lightweight global state management |
| Layer | Technology | Reason |
|---|---|---|
| API Framework | FastAPI (Python) | High-performance async REST API |
| Auth | JWT + OAuth2 | Secure token-based authentication and social login |
| Real-time Chat | WebSockets (FastAPI) | Low-latency real-time messaging |
| Task Queue | Celery + Redis | Async tasks: email, notifications, photo processing |
| Type | Technology | Reason |
|---|---|---|
| Primary RDBMS | MySQL (with Alembic) | User profiles, matches, messages, reports |
| Cache | Redis | Session caching, real-time presence, rate limiting |
| Layer | Technology | Reason |
|---|---|---|
| Object Storage | AWS S3 / MinIO (local) | Photo and media file storage |
| CDN | CloudFront / Nginx | Fast global delivery of profile images |
| Layer | Technology | Reason |
|---|---|---|
| Containerization | Docker + Docker Compose | Local development orchestration |
| Production | Kubernetes | Scalable server-side container orchestration |
| CI/CD | GitHub Actions | Automated testing and deployment pipelines |
| Term | Definition |
|---|---|
| Match | A mutual connection formed when two users have both liked each other's profiles |
| Swipe | The gesture-based action of indicating interest (right/like) or disinterest (left/dislike) on a profile card |
| Profile Card | A visual representation of a user's profile, displaying their primary photo, name, age, and key details |
| Gallery | A collection of photos uploaded by a user to their profile, viewable by matches |
| Constellation | The visual metaphor used in the UI to represent potential connections between users on the discovery screen |
| CDN | Content Delivery Network — a distributed system for fast delivery of static assets like images |
| GDPR | General Data Protection Regulation — EU data privacy law governing user data rights |
| JWT | JSON Web Token — a compact, secure means of transmitting authentication information |
| Alembic | A database migration tool for SQLAlchemy/Python used to manage MySQL schema changes |
| WCAG | Web Content Accessibility Guidelines — international standards for web accessibility |
Document prepared by: System Requirements Engineering Agent Last Updated: 2026-02-27 Next Review: Prior to Sprint 1 Kickoff
No comments yet. Be the first!