🚀 Bulk Email Sender - SvelteKit Frontend Migration Project
📋 Project Overview
This is a Bulk Email Sender web application currently built with Hono (backend) and vanilla HTML/CSS/JavaScript (frontend). Your assignment is to migrate the frontend to SvelteKit while maintaining the existing Hono backend functionality.
Current Tech Stack
- Backend: Hono (Bun runtime)
- Frontend: Vanilla HTML/CSS/JS with Bootstrap 5, Quill Editor
- Database: SQLite (via Bun:sqlite)
- Authentication: Argon2 password hashing with session tokens
- Email: Nodemailer with SMTP
Target Tech Stack
- Backend: Hono (keep as-is, migrate to Node.js/Deno with npm/pnpm/yarn)
- Frontend: SvelteKit (modern, enhanced version)
- Database: SQLite (maintain existing schema)
- State Management: TanStack Query (optional)
- Authentication: Same logic, adapted for SvelteKit
🎯 Assignment Objectives
1. Implement SvelteKit Frontend
- ✅ Create a modern, clean UI using SvelteKit
- ✅ Implement all existing features with enhanced UX
- ✅ Add client-side validation and error handling
- ✅ Implement responsive design (mobile-friendly)
2. Remove Old Frontend
- ✅ Delete
public/ folder (HTML, CSS, JS files)
- ✅ Remove static file serving routes from backend (except API endpoints)
- ✅ Ensure no dependencies on old frontend code
3. Update Documentation
- ✅ Update
README.md with new architecture
- ✅ Document setup instructions for both backend and frontend
- ✅ Add API documentation
- ✅ Include screenshots/demos of new UI
🎨 UI/UX Requirements
Design Principles
- Clean and modern design (avoid cluttered UI)
- Intuitive navigation (clear tabs/sections)
- Responsive layout (mobile, tablet, desktop)
- Accessible (ARIA labels, keyboard navigation)
- Fast and performant (lazy loading, optimistic updates)
💡 Pro Tips
- Use TypeScript strictly - Helps catch errors early
- Component first - Build reusable components
- API client abstraction - Centralize API calls
- Form validation - Use Zod or similar library
- Loading states everywhere - Better UX
- Error boundaries - Graceful error handling
- Optimistic updates - Instant feedback
- Debounce searches - Reduce API calls
- Lazy load routes - Faster initial load
- Test on mobile - Responsive design matters
📞 Questions?
If you have questions during implementation:
- Check existing backend code for API behavior
- Review types.ts for data structures
- Test API endpoints with Postman/Thunder Client
- Read SvelteKit docs for routing/forms
- Use browser DevTools for debugging
Good luck! 🚀 Build something amazing!