diff --git a/README.md b/README.md index 6fdf5a8..742fabe 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ # MicroPolyPages -Since the MicroPoly repo is private, we need a separate repo for the Alpha Release +Since the MicroPoly repo is private, we need a separate repo for the Alpha Release. This is that repo. The site can be accessed at https://cpsecapstone.github.io/MicroPolyPages/ diff --git a/_config.yml b/_config.yml index d5a9856..2e7bc53 100644 --- a/_config.yml +++ b/_config.yml @@ -18,6 +18,14 @@ description: >- # this means to ignore newlines until "baseurl:" A machine learning based update scheduler for the windows operating system that adapts to the varying schedules of users to ensure updates are as unintrusive as possible. +# this should add a nav bar? Didnt work. +# header_pages: +# - index.html +# - contact_issue.md +# - demo.md +# - installation.md +# - licensing.md +# - about.md # Build settings markdown: kramdown remote_theme: pages-themes/slate@v0.2.0 diff --git a/_includes/nav.html b/_includes/nav.html new file mode 100644 index 0000000..d4dd288 --- /dev/null +++ b/_includes/nav.html @@ -0,0 +1,7 @@ +

+ Home | + Contact About Issues | + Demo | + Installation | + Licensing +

diff --git a/_includes/navigation.html b/_includes/navigation.html new file mode 100644 index 0000000..81476f7 --- /dev/null +++ b/_includes/navigation.html @@ -0,0 +1,7 @@ + \ No newline at end of file diff --git a/_layouts/home.html b/_layouts/home.html index b97e840..7e983bd 100644 --- a/_layouts/home.html +++ b/_layouts/home.html @@ -12,13 +12,13 @@ -
{% if site.github.is_project_page %} View on GitHub {% endif %} + {% include nav.html %}

{{ site.title | default: site.github.repository_name }}

{{ site.description | default: site.github.project_tagline }}

@@ -49,4 +49,4 @@

{{ site.description | default: site.github.project_tagl

- \ No newline at end of file + diff --git a/_layouts/other.html b/_layouts/other.html new file mode 100644 index 0000000..1ca8516 --- /dev/null +++ b/_layouts/other.html @@ -0,0 +1,53 @@ + + + + + + + + + +{% seo %} + {% include head-custom.html %} + + + + + +
+
+ {% if site.github.is_project_page %} + View on GitHub + {% endif %} + + {% include nav.html %} + +

{{ page.title | default: site.github.repository_name }}

+ + {% if site.show_downloads %} +
+ Download this project as a .zip file + Download this project as a tar.gz file +
+ {% endif %} +
+
+ + +
+
+ {{ content }} +
+
+ + + + + diff --git a/about.md b/about.md deleted file mode 100644 index ae97249..0000000 --- a/about.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -layout: home -title: About -permalink: /about/ ---- - -This is the base Jekyll theme. You can find out more info about customizing your Jekyll theme, as well as basic Jekyll usage documentation at [jekyllrb.com](https://jekyllrb.com/) - -You can find the source code for Minima at GitHub: -[jekyll][jekyll-organization] / -[minima](https://github.com/jekyll/minima) - -You can find the source code for Jekyll at GitHub: -[jekyll][jekyll-organization] / -[jekyll](https://github.com/jekyll/jekyll) - - -[jekyll-organization]: https://github.com/jekyll diff --git a/contact_issue.md b/contact_issue.md new file mode 100644 index 0000000..832a9ea --- /dev/null +++ b/contact_issue.md @@ -0,0 +1,7 @@ +--- +layout: other +title: Contact/Issue Reporting +permalink: /contact_issue_reporting/ +--- + +

Please report any issues found to the following survey

\ No newline at end of file diff --git a/demo.md b/demo.md new file mode 100644 index 0000000..04dbccd --- /dev/null +++ b/demo.md @@ -0,0 +1,7 @@ +--- +layout: other +title: Demo +permalink: /demo/ +--- + +

View the demo here. Requires repository access

\ No newline at end of file diff --git a/index.md b/index.md index baf41cc..63910b9 100644 --- a/index.md +++ b/index.md @@ -2,4 +2,45 @@ layout: home --- -

{{ "Hello World!" | downcase }}

\ No newline at end of file +

The Problem:

+* Many Windows background updates can disrupt user activities +* Taking computer resources at inopportune times can be frustrating +* For example: + * Some Operating System updates might affect a user’s game experience, as the update takes some CPU away from the game. + * A sound driver update in the middle of a user’s Zoom call could drastically affect their meeting. + +

The Current Solution:

+* Windows Active Hours + * Can tell your computer when you are actively using it (Static period for everyday) + * Informs update orchestrator and schedules update, install, reboot. +* Limitations: + * A user may have an inconsistent schedule + * Students/Teachers use devices more during school year + * Use device more/less on weekends + * Health conditions interfere (Sleeping problems) + * There is a need for scheduler to determine a “good time” to update for each user + +

Proposed Solution:

+

Features:

+* Improves update timing by adapting to device use over time using a machine learning model, XGBoost. +* Supports retraining of the ML model +* Utilizes a scheduled task to collect user data (Runs every 5 minutes) + * System Logs + * Device State + * CPU utility + * etc +* Provides an API for the Windows Update Orchestrator to hit the endpoints and determine when to schedule an update, and whether or not right now is a good time to update. +* Tracks the accuracy of the model's performance over time. + +

MicroPoly API

+* A RESTful API hosted on the local machine that can be queried to provide a list of good times to install an update, OR to check if the device has the capacity to install the current update now. +* The API references several XGBoost models that uses time series forecasting to predict the device’s resource usage for the next day, and uses heuristics from the thresholds provided in the request to determine “good times”. + +

Technical Requirements:

+* The system shall run on machines with a supported version of Windows (10 and 11 as of date) as an executable +* The ML model shall not exceed 150 MB in size +* The ML model shall evaluate in 2 seconds or less +* The system shall support Win32 calls or other standard query calls + +

Docs

+* You can find our final presentations from every quarter, final project architectures, and the MicroPoly Technical Specification in the README of the [GitHub Repo](https://github.com/CPSECapstone/MicroPoly). There is also information on recompiling the production executable. diff --git a/installation.md b/installation.md new file mode 100644 index 0000000..0dabed4 --- /dev/null +++ b/installation.md @@ -0,0 +1,46 @@ +--- +layout: other +title: Install +permalink: /install/ +--- + +

{{"1. Download Repository"}}

+

Can be found here

+ +

{{"2. Enter the Root Folder of the Project Directory"}}

+* Using Powershell or an IDE of your choice. + +

{{"3. Start Data Collection, API server, and ML validation"}}

+

Alpha Release (Development Mode)

+* Run: python mp-build.py + * May need to update/install dotnet and python (refer to part 3.5 then return to part 3) + * Creates and starts the data collection task + * Sets up a local HTTP server to request "good times" to update + * Creates and starts the validation task and associated sub tasks + * Gives very meaningful error messages/logs in case the application does not run as expected. + +

Beta Release (Production Mode)

+* Run: start ./production-install.exe + * Creates and starts the data collection task + * Sets up a local HTTP server to request "good times" to update + * Sets up a task to restart the server on login (Server does not persist after a shutdown) + * Creates and starts the validation task and associated sub tasks + * Will ask for administrator priviledges. + +

{{"3.5. Install Required Dependencies (If Needed)"}}

+* Run: python --version (Should be Python 3.12+; Else upgrade) +* Run: winget install Microsoft.DotNet.SDK.8 +* Run: curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py \| python get-pip.py + +

4. Utilize HTTP Requests to Recieve "Good Times"

+* Refer to the demo for example requests and how to interpret responses + +

{{"[OPTIONAL] Uninstall MicroPoly"}}

+* Run: python mp-uninstall.py + * Will remove all created tasks, whether you chose to run the dev or production release. + * Can choose to remove all required python libraries installed at build time + * Can choose to remove all data created at runtime (In out folder) +* On completion, can delete the root folder to fully uninstall + +
+

If any issues are found, report them here

diff --git a/licensing.md b/licensing.md new file mode 100644 index 0000000..3bab5a7 --- /dev/null +++ b/licensing.md @@ -0,0 +1,13 @@ +--- +layout: other +title: Licensing +permalink: /licensing/ +--- + +

EULA

+

Refer to the licensing agreement for the relevant operating system

+Windows 10 +Windows 11 + +

Privacy Policy

+

Refer to Microsoft's Privacy Policy for more information

\ No newline at end of file