As a frontend developer, implement the Navbar section for the Home page. Uses useState for mobileOpen and scrolled, useScroll and useTransform from framer-motion to animate navBg (rgba(59,89,152,0) → rgba(59,89,152,0.97)), navBlur (blur(0px) → blur(12px)), and navShadow over scrollY range [0,120]. SVG logo animates leaf/sprout paths (stemPath, leftLeaf, rightLeaf, topLeaf) using pathVariants with custom delay per path index via framer-motion. mobileMenuVariants animate height 0→auto with opacity; mobileItemVariants stagger x:-20→0 per item. AnimatePresence wraps mobile menu. Nav entry animates y:-20→0 on mount.
As a backend developer, define the MongoDB task data model and Pydantic schemas for the rustic-page application. Create a Task document model with fields: id (ObjectId), title (str, required), description (str, optional), category (str, optional), priority (enum: high/medium/low, default: medium), dueDate (datetime, optional), completed (bool, default: False), createdAt (datetime, auto), updatedAt (datetime, auto). Define TaskCreate, TaskUpdate, and TaskResponse Pydantic schemas for request/response validation. Configure Motor async client connection to MongoDB using environment variables (MONGO_URL, MONGO_DB_NAME). Create a tasks collection index on createdAt for sorted listing. This is a prerequisite for all API endpoint tasks.
As a backend developer, configure FastAPI middleware for the rustic-page application. Add CORSMiddleware to allow requests from the React frontend origin (configurable via FRONTEND_URL env var, default http://localhost:3000). Configure allowed methods (GET, POST, PATCH, DELETE, OPTIONS), allowed headers, and allow_credentials. Add a global exception handler for MongoDB OperationFailure and validation errors returning structured JSON error responses. Add request logging middleware. Mount all task routes under /api prefix. Ensure the FastAPI app includes a /health endpoint returning {"status": "ok"} for docker-compose health checks. Note: frontend TaskForm and TaskList sections require CORS to be correctly configured before API calls succeed.
As a frontend developer, set up the global CSS theme and design token system for the rustic-page application. Create a global CSS file (src/styles/global.css or src/styles/variables.css) defining all SRD color tokens as CSS custom properties: --primary: #3B5998, --primary-light: #8B9DC3, --secondary: #FF6F61, --accent: #FFD700, --highlight: #FFA500, --bg: #F5F5F5, --surface: rgba(255,255,255,0.9), --text: #333333, --text-muted: #777777, --border: rgba(0,0,0,0.1). Include base resets (box-sizing, margin, padding), font imports for any required typefaces, and base body/html styles. Also set up framer-motion and GSAP as shared animation utilities — install both as dependencies and verify they are available. This is a prerequisite for all frontend section tasks that reference these CSS variables.
As a frontend developer, implement the HomeHero section for the Home page. Uses useState, useCallback, useMemo, useRef and useInView from framer-motion. generateParticles(count) creates particle objects with type (leaf/petal/glow), x, delay, duration, size, drift, rotate fields rendered as floating animated elements. GardenSVG sub-component renders a 1200×400 SVG scene with ground ellipses, grass tufts (Q-curve paths), and multiple layered flowers (stem paths, leaf ellipses, petal circles in #FF6F61/#FFD700/#FF8A80 palette). Hero text animates in via useInView with staggered motion variants.
As a frontend developer, implement the TaskGarden section for the Home page. Uses useState, useRef, useCallback and useInView/AnimatePresence from framer-motion. INITIAL_TASKS array has 6 tasks with id, title, dueDate, priority, and state from GROWTH_STATES enum (seed/sprouting/blooming/wilted/harvested). PRIORITY_COLORS and STATE_COLORS maps drive SVG fill colors. Four plant SVG sub-components: SeedPlant (animated ellipse + crack path with pathLength), SproutingPlant (animated stem path + spring-scaled leaf paths), BloomingPlant, WiltedPlant — each using motion.g with spring/easeInOut transitions. Task cards render plant SVGs in an SVG viewBox='0 0 100 150', title, dueDate, priority badge, and growth state selector buttons.
As a frontend developer, implement the TaskList section for the Home page. Uses useState and useRef with useInView/AnimatePresence from framer-motion. initialTasks has 8 tasks with id, title, category, priority (high/medium/low), dueDate, and completed boolean. containerVariants stagger children 0.05s; rowVariants animate x:-20→0 on enter and collapse height/padding/scale on exit. filterVariants animate y:-10→0. CheckIcon, CalendarIcon, TrashIcon are inline SVG sub-components. Renders filterable task rows with animated checkbox toggle (completed state), category badge, priority color indicator, formatted dueDate with CalendarIcon, and delete button with TrashIcon triggering AnimatePresence exit animation.
As a frontend developer, implement the QuickStats section for the Home page. Uses useState, useRef, useCallback with useInView/AnimatePresence from framer-motion and CountUp from react-countup. STATS_INITIAL has 4 entries: Total Tasks (24), Completed (16), In Progress (5), Overdue (3) using FiLayers, FiCheckCircle, FiLoader, FiAlertTriangle from react-icons/fi. containerVariants stagger 0.12s; cardVariants animate y:40→0 with rotateY:-8→0. StatCard sub-component uses useInView on iconRef for icon spin animation (rotate:0→360, scale:0.5→1 over 0.8s). isFlashing prop triggers rotateY bounce and gold box-shadow animation. CountUp animates from prevValue to stat.value over 0.6s with preserveValue. qs-card-shimmer decorative layer per card.
As a frontend developer, implement the TaskForm section for the Home page. Uses useState for formData (title, description, category, priority:'medium', dueDate), focusedField, and form errors; useRef for sectionRef with useInView. FloatingField sub-component wraps inputs with animated motion.label that translates y:-8 and shrinks to 11px fontSize when focused or hasValue; tf-underline span animates scaleX:0→1 on focus; error state triggers x-shake animation [-8,8,-6,6,-3,3,0]. categories array has 6 options; priorities array has high/medium/low with className and color. AnimatePresence shows tf-error-text with SVG error icon on validation failure. Submit button triggers success particle burst animation.
As a frontend developer, implement the CallToAction section for the Home page. Uses useState for magnetic offset {x,y}, useRef for sectionRef and sproutRefs array, useInView with margin:'-60px', and useEffect for GSAP sprouting animations. sprouts config array has 7 entries with left%, delay, height, color (#66BB6A/#81C784/#4CAF50/#A5D6A7). useMagneticHover(radius=50) custom hook tracks mousemove distance from button center and applies dx*strength*0.35 offset via useState; resets on mouseleave. GSAP animates each sprout ref: scaleY:0→1→0.3→1 in repeating cycle with power2.out/power1.inOut easing. Motion section uses useInView for entrance animation. CTA button applies magnetic offset as x/y transform.
As a frontend developer, implement the Footer section for the Home page. Uses useRef with useInView(once:true, margin:'-40px') from framer-motion. navLinks array has Home/Privacy/Terms hrefs; socialLinks has FaGithub, FaTwitter, FaLinkedin from react-icons/fa. containerVariants stagger children 0.08s; itemVariants animate y:20→0. FooterLink sub-component uses motion.a with rest/hover variants animating ftr-underline scaleX:0→1 from left origin over 0.3s. SocialIcon sub-component uses motion.a with whileHover rotate:15 scale:1.2 spring(stiffness:400,damping:15). ftr-decor-layer renders 5 ftr-decor-leaf divs with CSS var(--scroll)*-0.2px parallax translateY. Brand renders 'rustic-page' with ftr-logo-accent span.
As a backend developer, implement the FastAPI task management endpoints to support the frontend Home page sections (TaskForm, TaskList, QuickStats). Create the following REST endpoints: POST /api/tasks (create task with title, description, category, priority, dueDate), GET /api/tasks (list all tasks with optional filter by category, priority, completed status), PATCH /api/tasks/{id} (update task fields including completed toggle), DELETE /api/tasks/{id} (delete a task by ID). Each task document stored in MongoDB with fields: id, title, description, category, priority, dueDate, completed, createdAt, updatedAt. Use Motor (async MongoDB driver) for all DB operations. Return standardized JSON responses. Note: TaskForm, TaskList, QuickStats, and TaskGarden frontend sections depend on these endpoints.
As a frontend developer, implement a centralized API service module (src/services/api.js or src/services/taskService.js) for the rustic-page React app. Create async functions: createTask(taskData), getTasks(filters), updateTask(id, updates), deleteTask(id) — each using fetch or axios against the FastAPI backend base URL (configurable via REACT_APP_API_URL env var). Handle error responses gracefully and return typed task objects. This service will be consumed by TaskForm (createTask), TaskList (getTasks, deleteTask, updateTask for complete toggle), and QuickStats (getTasks for counts). Also implement a simple localStorage fallback for offline resilience as specified in the SRD Non-Functional Requirements. Note: depends on backend CRUD API being available (backend_tasks_api_1).

Plant tasks, water progress, harvest results. Transform your productivity into a thriving garden where every goal blooms into an accomplishment.
Start PlantingEach task is a living plant in your garden. Plant new seeds, nurture them as they sprout, and harvest them when complete. Drag to reorder your priorities.
Drag plants left or right to reorder your tasks
Manage, filter, and track all your garden tasks in one place.
Add a task to your garden and watch your productivity grow
Plant your first task and watch your garden flourish. Every completed task blooms into something beautiful — start cultivating your most productive day yet.
No comments yet. Be the first!