关键词 > PROCTECH4IT3/SEP6IT3

PROCTECH 4IT3/ SEP 6IT3 Semester Project

发布时间:2023-04-04

Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit

PROCTECH 4IT3/ SEP 6IT3

Project Deliverables

Semester Project

The semester project should be completed during the duration of the semester starting with the building of the resources required from Week 1.

For the successful submission of the project, the following components will be required:

  A docker instance with a functional testing software suite

•   A copy of the related Django code in theStart Hererepository during week 1.

Highly recommended integrations include:

•   A domain (Free throughGitHuband.TECH)

•   A set of Cloud VM’s (Free throughDigitalOcean)

An example of the completed project can be seen onhttps://learningdjango.tech/

This completed project will have focused on the completion of a full dynamic website and will have required the integration of multiple components (Shown below).

 

General requirements

The following items are required for a complete submission :

1.   GIT

a.   Weekly commits or commits for any significant changes made.

b.   Tags for Wednesday/Friday sessions during which class instruction on new features are introduced.

c.    Branches for weekly feature development merged back to main in the following week.

2.   Python

a.   A set of applications written in pure python including

i.   Sinewave generator Covered in class.

ii.   Secondary noise generator Assignment 1

b.   Django application with:

i.   Views

ii.   URL’s

iii.   Models

3.   MySQL

a.   A set of queries for the Sinewave generator integrated within the views files.

b.   A set of queries for the noise generator integrated within the views files.

c.   A functional database implemented through Django migrations.

4.   Redis

a.   A Redis container that caches the website with the settings on the Django project integrating the software package.

5.   Docker

a.   A compiled docker container with the image in the local docker registry

b.   A docker compose integration file that brings up 1 instance of the required systems.

Submission

The submission of the semester project will require a ZIP folder uploaded to Avenue to Learn on the due date or within the 2 days grace period.

No extensions are available for the project and an MSAF will NOT have the grade point moved to the final exam. MSAFs will result in an arrangement with the instructor for a new deadline.

Your submission should contain all the items listed in the submission requirements section and should be reviewed with the General requirements above.

Submission requirements

Your project should include:

1.   Bootstrap CSS and be implemented from a base template.

2.   A MQTT Extension Module for each of the pure python signals sent to a MQTT broker. This signal should immediately be stored into a database.

3.   Application packages for a:

a.   Home page.

b.   Dashboard page.

c.   Tabled page.

d.   Fourier transforms page.

e.   Login page.

f.    API page.

4.   Each of your packages for the dashboard, tabled, and Fourier pages to cover both signals from the designed models.

Page Specific requirements

Base Page:

1.   A Menu on the left-hand side that spans the length of the page and is visible with a darkened background and that collapses to a mobile view once the screen has been shrunk down.

2.   White icons and text that spans the width of the menu bar for each of the application packages and the corresponding pages.

3.   An expanding menu for items with multiple pages.

4.   A username indicator with a profile picture and login option at the bottom of the page regardless of scrolling.

5.   A sticky bottom footer with [Your Name] - ©[year]

6.   A favicon of your choosing .

Home Page:

1.   A top line that is utilizing heading 1 and contains:

a.   A picture on the left-hand side

b.   The complete name (First and Last) right beside the image (not underneath)

c.   The name should be in italics and be separated from the images by 4 spaces.

2.   Sections utilizing heading 2 that have appropriate titles for:

a.   Education

b.   Work

c.    Hobbies

3.   Within the Education section you should include:

a.   High School

b.   College

c.    University degree and specialization

4.   In the Work section you should include:

a.   Co-op’s

b.   Paid and Unpaid Jobs

5.   The Work section should have at least:

a.   A minimum of 3 jobs with Bold and Italicized titles

b.   A minimum of 3 responsibilities in an unordered list with a single indent

c.   A link to each of the employers with their respective web pages

6.   In the Hobbies section you should include:

a.   Hobbies,

b.   Interests,

c.    Professional Associations,

d.   Clubs etc.

7.   The Hobbies section should have at least:

a.   A minimum of 1 entry within each of the sections

b.   A short description (1-2 sentences) of the entry

c.    Be organized within an ordered list

Dashboard(s):

1.   A form input utilizing a GET request containing:

a.   A time input for data start time that defaults to the current time

b.   A numbered input that defaults to a reasonable set of queries.

i.   Optional Min/Max

ii.   Optional Step & integer forced.

c.   A primary submit button

d.   A danger reset button

2.   A JavaScript generated graph with

a.   A header containing the data in the graph

b.   Self-scaling view that fills the page

c.    Indicators for the data scales (both x and y axis)

3.   Data visualized from the RAW signal data that was stored within the defined period and samples of the signal.

Tabulations:

1.   A form input utilizing a GET request containing:

a.   A slider that allows a table to be hidden

b.   A time input that defaults to the current time

c.   A numbered input that defaults to a reasonable set of queries

d.   A primary submit button

* Note that the time and query input tags should appear seamless and in one line with respect to their inputs

2.   A set of tables for the RAW data and the FFT Data values with their data points and values. These tables should:

a.   Have the ability for the data of each table to be copyable individually.

b.   Have alternating colours for each row.

c.   Change colour on mouse hover for the row.

d.   The data point to be considered a heading item and be bolded.

Fourier page(s):

1.   A form input utilizing a GET request containing:

a.   A time input for data start time that defaults to the current time

b.   A numbered input that defaults to a reasonable set of queries.

i.   Optional Min/Max

ii.   Optional Step & integer forced.

c.   A primary submit button

d.   A danger reset button

2.   Two JavaScript generated graphs containing:

a.   A header containing the data in the graph

b.   Self-scaling view that fills the page

c.    Indicators for the data scales (both x and y axis)

3.   Data visualized from the FFT signal data that was stored created dynamically the defined period and samples of the signal alongside the secondary windowed signal within individual graphs       stacked on top of each other.

Login Page:

1.   A form generated by Django and not hard coded

2.   A button that is setup as a primary button

3.   A link to forgotten password that goes to the default admin reset password page

Accounts Page:

1.   A page that contains the user information including:

a.   Username

b.   First Name

c.    Last Name

d.   Email

e.   Active Since

API

1.   An API root that enumerates both the signals raw data through a JSON REST API

2.   10 items pagination

3.   No authentication required but keeps authenticated users active.

BONUS

USER CHANGE

Extend the user model from the git example provided under the finalization branch and allow the user to change all except their username and admin rights.

 

Module requirements

The MQTT Module should be a plugin module that is independent of the website that runs while the site is running. The module needs to:

•   Subscribe to topics only set in the settings file.

•   Interpret only messages that is setup with the correct topic name.

•   Process the messages into the database and store the data.

Docker requirements

1.   A dockerized container needs to be built and run within your system and show access to your completed website. A screenshot with the container running needs to be included in your zip folder root.

2.   A docker compose file that builds and spins up the correct stack to build the application in full needs to be included.

Git Requirements

A copy of the completed project, merged into main is required in the SEPT GitLab environment under the matching MacID and repository containing your project. All branches and tags from weekly           commits need to be present for any completion marks.

The repository needs to contain:

1.   A complete copy of your submitted code

2.   A completed readme file with:

a.   An instruction set on how to pull the package down with git

b.   Any changes that needs to be made before the package can be run

c.   Step by step instructions to run the package including the docker screenshot showing what a successful run of the docker compose file looks like

3.   Your standard Statement of Authority on the files you created/edited.