# Turf Tasker

A simple but powerful ASP.NET Core MVC application designed to track lawn care activities. 
**This project serves as a hands-on learning exercise to explore and master the fundamentals of the ASP.NET Core MVC framework, 
from data modeling with Entity Framework Core to building dynamic, data-driven views.**

## Key Features

-   Log lawn care events (Mowing, Watering, Fertilizing, etc.).
-   Track mowing patterns to ensure a healthy lawn and prevent ruts.
-   Dashboard homepage showing the last time key activities were performed and what the next mowing pattern should be.
-   A dedicated section for general lawn care tips.
-   A filterable and sortable log of all past activities.
-   Clean, responsive UI using Bootstrap.

## Tech Stack

-   **Backend:** C#, ASP.NET Core 8 MVC
-   **Database:** Entity Framework Core 8 with SQLite
-   **Frontend:** HTML, CSS, Bootstrap 5, JavaScript (with jQuery)
-   **Development Environment:** JetBrains Rider on Fedora Linux
-   **Version Control:** Git with GitLab
-   **Containerization:** Docker

## How to Run

You can run this application either directly using the .NET SDK or via Docker.

### Option 1: Run Natively (using .NET SDK)

1.  **Clone the repository:**
    ```bash
    git clone https://gitlab.com/blakeridgway/turf-tasker.git
    ```
2.  **Navigate to the project directory:**
    ```bash
    cd turf-tasker 
    ```
    (If your `turf_tasker.csproj` is directly in the cloned `turf_tasker` folder, you might skip this `cd`.)
3.  **Ensure .NET 8 SDK is installed:**
    ```bash
    dotnet --version
    ```
    (Should show 8.x.x)
4.  **Restore dependencies:**
    ```bash
    dotnet restore
    ```
5.  **Create/Update the database:**
    ```bash
    dotnet ef database update
    ```
    This will create the `turf_tasker.db` SQLite file and seed initial data.
6.  **Run the application:**
    ```bash
    dotnet run
    ```
7.  **Access in browser:** Your application will typically run on `https://localhost:5062` or a similar port, which will be displayed in the terminal output.

### Option 2: Run with Docker

1.  **Ensure Docker is installed and running** on your system.
    *   [Docker Installation Guide](https://docs.docker.com/engine/install/)
2.  **Clone the repository** (if you haven't already):
    ```bash
    git clone https://gitlab.com/blakeridgway/turf-tasker.git
    ```
3.  **Navigate to the project directory**:
    ```bash
    cd turf_tasker 
    ```
4.  **Build the Docker image:**
    ```bash
    docker build -t turf-tasker-app .
    ```
    This command builds the image and tags it as `turf-tasker-app`.
5.  **Run the Docker container:**
    ```bash
    docker run -e "ASPNETCORE_URLS=http://+:80" -p 8080:80 turf-tasker-app
    ```
    *   `-e "ASPNETCORE_URLS=http://+:80"` explicitly configures the app to listen on HTTP port 80 inside the container.
    *   `-p 8080:80` maps port 8080 on your host machine to port 80 inside the container.
6.  **Access in browser:**
    ```
    http://localhost:8080
    ```
