86 lines
		
	
	
	
		
			3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			86 lines
		
	
	
	
		
			3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # 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
 | |
|     ```
 | 
