A full-stack cover image generator application with built-in analytics dashboard. Showcases modern web development, cloud deployment, and best practices. Demonstrates end-to-end integration of responsive frontend, serverless backend, MongoDB data persistence, and cloud infrastructure for production-ready applications.
- Frontend: Vercel - Optimized for Next.js with automatic deployments on push
- Backend: Azure Function App - Serverless execution of image generation and analytics APIs
- Database: MongoDB - Cloud-hosted for analytics data persistence
- Frontend Architecture: Component structure, hooks, state management, accessibility
- Backend Architecture: Azure Functions, image generation, APIs
- DevOps Practices: Deployment strategies, CI/CD pipelines, infrastructure
- Learning Notes: Key insights from development and deployment
- Cover Image Generation: Create custom cover images with customizable text, colors, fonts, and size presets
- Real-time Preview: See changes instantly as you adjust design parameters
- Color Contrast Validation: WCAG AA compliance checking ensures all generated images are accessible (β₯ 4.5:1 contrast ratio)
- Activity Tracking: All generate and download actions are logged to MongoDB
- Analytics Dashboard:
/analyticsroute displays comprehensive metrics with interactive charts:- Total clicks (combined, generate, download)
- Monthly trends (12-month line chart)
- Font and size usage distribution (pie charts)
- Full-Stack TypeScript: Type-safe code from frontend to backend
- React Components: Modular, reusable UI components with proper separation of concerns
- Real-time Preview: Instant updates as users customize designs
- Color Contrast Validation: Debounced WCAG AA compliance checking with real-time visual feedback
- Responsive Design: Mobile-first approach with optimized layouts
- Custom Hooks:
useAnalyticsfor data fetching,useContrastCheckfor accessibility validation - Accessibility: WCAG 2.1 AA compliant with semantic HTML, ARIA attributes, and contrast validation
- Serverless Azure Functions: Scalable, cost-efficient image generation
- Node.js Canvas: High-quality PNG rendering
- WCAG Color Contrast Validation: Ensures all generated images meet accessibility standards (β₯ 4.5:1 ratio)
- MongoDB Integration: Analytics data persistence and aggregation
- API Endpoints: RESTful design for image generation and analytics queries
- Comprehensive Testing: Unit tests for both frontend (Vitest) and backend
- Code Quality: Automated linting and formatting with Biome
- Multi-Cloud Deployment: Frontend on Vercel, backend on Azure Function App
- CI/CD Ready: Automated testing and deployment pipelines
This project demonstrates:
- β Full-stack TypeScript application with end-to-end type safety
- β Serverless architecture handling concurrent requests efficiently
- β Multi-cloud integration (Vercel + Azure) with production-ready configuration
- β Data analytics from collection to visualization
- β Comprehensive testing and code quality standards
- β WCAG 2.1 AA accessibility compliance
- β Clean, maintainable codebase with clear documentation
cover-craft/
βββ frontend/ # Next.js frontend application
β βββ src/
β βββ app/ # Next.js app router pages
β βββ components/ # React components
β βββ hooks/ # Custom React hooks
β βββ lib/ # Utilities and API functions
βββ api/ # Azure Functions backend
β βββ src/
β βββ functions/ # Azure Function endpoints
β βββ assets/ # Fonts for image generation
βββ docs/ # Architecture and development docs
βββ README.md # This file
The /analytics page provides real-time insights into user engagement:
| Chart | Purpose |
|---|---|
| Total Clicks | Bar chart showing combined, generate, and download totals |
| Monthly Trends | 12-month line chart tracking generate/download activity |
| Font Usage | Pie chart of font popularity |
| Size Usage | Pie chart of size preset preferences |
All data is persisted in MongoDB and aggregated on-demand. Built with recharts for interactive, responsive visualizations.
- Node.js 22+ (LTS recommended, tested on Node 24)
- npm or yarn
- Azure Functions Core Tools (for local backend development)
- MongoDB connection string (for analytics features)
- Clone the repository:
git clone https://github.com/victoriacheng15/cover-craft.git
cd cover-craft- Install dependencies:
# Frontend
cd frontend && npm install && cd ..
# Backend
cd api && npm install && cd ..Terminal 1 - Frontend:
cd frontend
npm run devVisit http://localhost:3000
Terminal 2 - Backend:
cd api
npm run prestart # Compile TypeScript
npm start # Start Azure Functions locallyBackend available at http://localhost:7071
# Frontend
cd frontend
npm run test # Run tests
npm run lint # Lint code
npm run format # Format code
# Backend
cd api
npm run test # Run tests
npm run lint # Lint codeThis project is built with accessibility in mind:
- Semantic HTML and ARIA attributes
- WCAG 2.1 AA color contrast ratios
- Screen reader announcements for dynamic content
- Visible focus indicators
See Accessibility Standards in the frontend architecture documentation for details.