# 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 ```