turf-tasker/TODO.md
2025-06-17 13:21:46 -05:00

3.2 KiB

MowLog Project TODO List

This file tracks the development progress, completed features, and future ideas for the MowLog application.

Completed Features

  • Initial Project Setup (ASP.NET Core MVC)

    • Created project using the MVC template.
    • Configured for development on Fedora Linux with JetBrains Rider.
  • Data Modeling & Database

    • Created LawnCareEvent model with MowingPattern and EventType enums.
    • Set up Entity Framework Core.
    • Configured the project to use a SQLite database.
    • Created and applied initial database migration.
  • Core CRUD Functionality

    • Scaffolded the LawnCareEventsController with all views (Create, Read, Update, Delete).
    • Ensured all CRUD views (Index, Create, Edit, Delete, Details) are present and working.
  • Tier 1 Enhancements (UX/UI)

    • Added JavaScript to conditionally show/hide the "Mowing Pattern" field.
    • Set the "Create" form's date field to default to the current day.
    • Customized the site's CSS to create a green, themed navigation bar.
  • Tier 2 Features (Dashboard & Logging)

    • Created a DashboardViewModel.
    • Implemented a dynamic dashboard on the homepage showing last activity dates and the next mowing pattern.
    • Added sorting and filtering capabilities to the main "Mow Log" index page.
  • Project Management & Documentation

    • Initialized a Git repository.
    • Created a GitLab repository and pushed the project.
    • Wrote a comprehensive README.md file.
    • Added a .gitignore file tailored for .NET projects.
    • Included an MIT LICENSE file.

🎯 Next Up

  • Feature: Lawn Care Tips Section
    • Create LawnCareTip model (Id, Title, Category, Content).
    • Add DbSet<LawnCareTip> to ApplicationDbContext.
    • Create and apply a new database migration.
    • Scaffold the LawnCareTipsController with views.
    • Add a "Tips" link to the main navigation bar.

🚀 Future Ideas & Enhancements

  • Feature: Calendar View

    • Integrate a client-side JavaScript library (like FullCalendar) to display events visually.
    • Create a JSON endpoint in the controller to serve event data to the calendar.
  • Feature: Enhance Data Model

    • Add more specific, nullable fields to the LawnCareEvent model (e.g., WaterAmountInches, FertilizerType, MowerHeightInches).
    • Update forms to include these new fields, using conditional logic where appropriate.
  • Architecture: Refactor to a Service Layer

    • Create an ILawnCareService interface and LawnCareService class.
    • Move all database query logic from controllers into the service layer to improve separation of concerns.
  • Feature: User Authentication

    • Integrate ASP.NET Core Identity to allow users to register and log in.
    • Associate lawn care events with a specific user ID so each user only sees their own data.
  • Deployment: Containerize with Docker

    • Add a Dockerfile to the project to create a portable container image of the application.