Skip to content
This repository was archived by the owner on Sep 21, 2025. It is now read-only.

Developer Documentation

George Hyde edited this page Apr 7, 2025 · 1 revision

Development Environment Setup

This document describes how to replicate the development environment for this project.

## SDKs & Tools

* Install **.NET SDK Version 8** from the official page [.NET SDK](https://dotnet.microsoft.com/download/dotnet/8.0) or through packages in your Linux distribution.
* Install **Git** from the official page [Git](https://git-scm.com/) or through packages in your Linux distribution.

## Clone the Repository

Run the following command in your local terminal to clone the repository:

```bash
git clone [https://github.com/georgehyde-dot/CS690-FinalProject](https://github.com/georgehyde-dot/CS690-FinalProject)
```

## Testing the Setup

1.  Navigate into the solution folder:
    ```bash
    cd CS690-FinalProject/MealPlannerProject
    ```

2.  Run the test command:
    ```bash
    dotnet test
    ```

3.  If you can see the tests passing, you have successfully set up the development environment.

## Running the Application

1.  Navigate to the solution directory:
    ```bash
    cd CS690-FinalProject/MealPlannerProject
    ```

2.  Navigate into the specific web project directory:
    ```bash
    cd MealPlannerProject
    ```


3.  Run the application:
    ```bash
    dotnet run
    ```

## Development Workflow (Contributing)

The `main` branch is protected, so direct commits are not allowed. Please follow these steps to contribute:

1.  Create a new branch for your changes (e.g., `git checkout -b feature/your-feature-name`).
2.  Make your code changes.
3.  Test your changes locally (`dotnet test`) and ensure all tests pass.
4.  Commit and push your branch to the remote repository (e.g., `git add .`, `git commit -m "Your commit message"`, `git push origin feature/your-feature-name`).
5.  Create a Pull Request (PR) on GitHub comparing your branch to the `main` branch.

## Making a Release

1.  Ensure your local `main` branch is up-to-date and all tests pass.
2.  Navigate to the solution directory (e.g., `CS690-FinalProject/MealPlannerProject`).
3.  Publish the application for release (this creates a self-contained deployment package). Specify an output directory:
    ```bash
    dotnet publish -c Release --output ./publish_output
    ```
4.  Copy any necessary runtime files (like `stops.txt`, configuration files, etc.) to the publish folder (`./publish_output`). Example:
    ```bash
    cp stops.txt ./publish_output/
    ```
5.  Navigate *into* the publish folder:
    ```bash
    cd publish_output
    ```
6.  Create a zip archive of the published contents. It's often good practice to create the zip file *outside* the publish directory:
    ```bash
    zip -r ../MealPlannerProject.zip *
    ```
7.  Navigate back out (optional):
    ```bash
    cd ..
    ```
8.  Go to your project's GitHub repository page.
9.  Click on "Releases" (usually on the right sidebar).
10. Click "Draft a new release".
11. Choose a tag (usually corresponding to the version, e.g., `v1.0.1`), name the release, and write release notes describing the changes.
12. Upload the `MealPlannerProject.zip` file created in step 6 as a binary asset.
13. Publish the release.

Clone this wiki locally