Project 2 - Web Systems (novel) Tutorial with Implementation
CHOICE: GROUP Work OR (only if necessary and with instructor's permission do as individual)
ITEM1: Topic/Article Selection Due Feb. 10, start of class
ITEM 2:Tutorial + Deliverables (see below) April 12 Start of Class with presentations starting on April 12
ITEM 3: ALL CLASS Peer reviews due 5pm on April 28
YOU MUST look at the locked down reviews and by 11pm April 28 email me if there are any problems with the reviews you made
CLASS REVIEWED - this means you all review other student's presentations --- using Google Drive document (if you were not in class when granted permission click on link from horizon account request access and in message tell me you name and netid --only from your horizon email will be allowed)
NOTE: proposal and reviewing points made by instructor.
125 points - 20 proposal, 85 points remaining, 20 for peer reviewing (all peers)
NOTE:Everyone receives the same grade in your group on the project unless there are issues then the instructor has the right to adjust points for individuals based on contribution to the work.
Project Description & Requirements
The purpose of this project is to learn about and "implement" a state of the art Web Systems that is NOT covered directly in class. There are many topics like how to implement a IOT backend using AWS that you can perform using say an Andruino IOT device and your AWS account. You are to propose the topic to your instructor before preceeding. NO TWO groups can choose the same topic and it is first come first serve (see below the proposal process).
Search our library and on the Internet for information, images, research, etc. on your selected choice. Review materials and save all references including both library materials and on-line site locations (URL) as well as create a review/summary of the information in each piece of review material. See the requirements below for the tutorial and presentation components of this project.
Tutorial Website & Implemenation
- Format:
- DOCUMENTATION: You are to use Github Pages to publish your Tutorial which includes demonstration of your implementation done in HTML on topic To produce the web pages, you can use any web authoring tool you wish --- I personally use Adobe Dreamweaver (and you can get a free trial version to do this). I highly recommend that you use a web authoring tool.
- CODE/IMPLMENTATION: Any created gode should be hosted on a Github repository same associated with the Github Pages for the tutorial website.
- Tutorial Mixed-Media: You must have a minimum of 5 pictures or diagrams
illustrating the concept you are discussing. As appropriate include
video or audio also. If you borrow images, you must reference in the
legend where you retrieved them from.
- Tutorial Organziation: The tutorial should be organized. It SHOULD not look like a long paper. You should have a nice intro with an easy navigation scheme present throughout the site's pages. YOU MUST HAVE A NAVIGATION BAR either across the top or vertically down the left and must be present on ALL web pages in your html tutorial.
- Tutorial Originality: Your writing should be original. You can NOT
paraphrase large blocks of text. If you need to paraphrase smaller
items, you need to refer to the article in which the text comes from
and surround the text with quotes. You should keep to a bare minimum
the number of times you paraphrase others words. I DO NOT WANT TO SEE LARGE AMOUNTS OF COPYING ......NOR DO I WANT TO SEE YOU JUST LINKING OFF TO OTHER PAGES AND NOT EXPLAINING IN YOUR OWN WORDS
- Tutorial Length: Someone should be able to go through your tutorial
on their own within 30 minutes.
- Tutorial & Implmeentation Level of Detail: I expect that you will delve into your
topic at a sufficient level of detail for the audience to be able
to understand how things are implemented or created and with possible
reference to your article(s) (that you quote) be able to recreate
or build the system(s) described. The IMPLEMENTATION must work at a basic level (e.g. you can have one IoT device you don't need 10)
- If you are discussing a topic that involves the development
of software or algorithms, you should the code. You should discuss how
the algorithm works and if there are alternatives for implementation compare them
to others, summarizing with what you think (and others may think)
are superior.
- If you are discussing a topic that involves the development
of software or algorithms, you should the code. You should discuss how
the algorithm works and if there are alternatives for implementation compare them
to others, summarizing with what you think (and others may think)
are superior.
- Tutorial Annotated Bibliography: You are required to have links
in your tutorial to an annotated bibliography. You must have a minimum
of TWO reference (please note different pages on the same web-site do
NOT count). Throughout your on-line tutorial, each time you wish to
quote a reference, it should be represented by a number that is hyper-text
linked to the annotated bibliography. In this bibliography page, you
will have listed in order of appearance (hence the numbers) your references
each followed by an annotation of the contents of the reference. Specifically,
you must include not only the title, author, date, source, but also,
a sysnopsis, and a reliability rating. You should use IEEE citation format. For example you use a citation in your document as follows:. In [2] they discuss how Java contrasts with other languages for use in web systems. .In your bibliography/reference list at the end you would list the second
reference you like the following.
[2] "Java is Great", Lynne Grewe, PC Weekly, May, 1996., p.g. 21-33.
synopsis: this is a journal article that discusses the benefits Java brings to the programming world and contrasts it with other high-level languages.
reliablity: L. Grewe is an independent researcher and professor. PC Weekly is an popular computer industry magazine that publishes technical articles, mainly to a non-research but, technical audience.
- Demonstration/Presentation: You MUST make a youtube recording demonstrating your implementation. ALSO, you will be asked to demonstrate live (only in rare cases and with instructor permission when this is not possible will the recording be used for live presentation). The link to the YouTube video should be part of your documenation that should feature screenshots throughout of your work and it running.
Proposal
Select a topic. Topics are given out on a first come first serve basis. When you have choosen a topic you need to post the poropsal to Blackboard->Discussion Board->Project 3 Proposals. YOU MUST MAKE SURE THAT someone else has not choosen this topic already. What I suggest you do is to first post once you know your topic the title of the topic of your choice and then latter edit your posting to include the entire proposal. However, you must be specific in your title so you don't simple say something like "IOT" but, instead say "IOT Backend System on AWS with Andruino device" If you choose something generic and someone posts something more specific and it is what you meant ---I will rule in favor of the more specific posting.
I will respond to each of your postings with either approval, denial or request for more information in the proposal (pending). The proposal must contain the following information (please number them as seen here) AND IMPORTANTLY the subject title of your posting should be the title of your topic e.g. "IOT Backend on AWS with Arduino Device". (-this is to only show you the idea --- you do not have to take this topic).
Below is an example of the content your proposal must have.
CAUTION : Here is an example that is NOT novel and NOT something you should do (as we are teaching Google backend)---- I choose it as an example to show what needs to go into a proposals without influencing anyone's choice.
- Title of topic (e.g. "Qt Framework for C++ with a Google Backend featuring an Address Book Application implementation")
- Team - your groups number and names
- Description:
1 to 2 paragraphs detailing what you are going to talk about & IMPLEMENT(this requires that you have done some research /reading on the subject).
(e.g. Qt is a C++ framework that is popular in indsutry and provides support for developing applicaiton software with a GUI and Non-GUI features like SQL database access, XML parsing, thread management, network support and a unified cross-platform application programming interface for file handling. In this way, it provides some of the features we have in standard Java that are missing in standard C++. .This work features the implementation of a desktop AddressBook using a Google Cloud Firestore backend.>>>blah,blah,blah). SHOW diagrams of what the implmenation will be and look like. Consider using Lucid Charts to faciliate this.
- table of contents - break down the subject into sub-topics (each could be a major link on your website).
For example, you might have for "Qt"- What is Qt
- define when Qt used and how - Qt installation
- how Qt is setup - Qt the GUI
-here describe and give some examples of how Qt uses Model-View-Controller pattern to implement GUI.
- Qt and Google Database Setup
-there are many non-GUI features of Qt and I will highlight its ability to access Databases and give sample code.
- Discuss Google database setup - Example Programs and List of Companies Actively using Qt
-I (meaning you) will give readers some sample programs to get a better sense of a complete program using Qt.
-I will also give readers an idea of what companies are using Qt and how. - Demonstration - this will show screenshots AND link to youtube video of demonstartion of the implmeneted system working.
- The Future and Conclusions
-I (meaning you again) will let readers know about the research labs (CMU, etc) doing research in this area and what they are currently working on (I will send and email and contact professor in charge of lab to ask about it). - References
-I will list some references (preferablly online) that used in making this tutorial
- What is Qt
- References: At least 2 sources you have read (preferrably online links or attachments to posting) on the subject and used to create the paragraph.
Timeline & Teamwork
Your team MUST use Github shared repository (come to office hours if you need help with this) in your team to store any code, etc. for your project. You must use your issues board you create for this project to help you stay on point (again come to office hours if you need help on htis). I prefer Zenhub free plugin to Github (must get account on Zenhub) but, others like Trello.com are possible (and support as of now some limited number of free projects).
Progress Resports Weekly starting week 9: -WITH ZenHub board or Trello board or Github Issues (your group chooses)
Each week posting worth 5 points towards participation points in class grade, ONE posting per group
- FIRST: you are to create individual accounts on [Zenub.com or Trello.com or similar ] and setup a Board like shown below which is used to create and trakck objectives. Note each "card" represents a task or objective. As you go along you will create new tasks. Each task can be assigned to 1 or more people. Each task has a due date. Also, each task can have some descriptions. NOTE: get puligin for the board for your shared Github repository.
- WEEKLY: Create a Progress report you post to blackboard each week by 11pm Friday containing (keep the titles)
- Progress Summary: a quick summary as to what you did that week
- Trello Board Screen shot: a copy of the trello board (updated as necessary from previous week)
- Github/Bitbucket: Screenshot showing new commits.
BB->Group Attendance> week X-progress report
(x= 9, 10, etc)
example of Trello Board
Regarding Issues Boards (Zenhub or Trello, etc)
LEANR how to use ZenHub via YouTube video.
LEARN how to use Trello via Youtube video
THIE ROUGH STEPS of WHAT you NEED TO DO (see documenation and videos above to help you)
STEP1: everyone in your team get an account on zenhub.com or trello.com ADD the appropriate pluggin into your shared GitHub repository
STEP2: one person in your group -create a team , add all the members to the team. Give the name of your team the name of your ficticous startup company
STEP 3.same person in step 2 create a Board, Name it yourcompanyName_Schedule
STEP 4: someone on team (can be different person) creates 3 Lists (these are the columns above): Titles MileStones, In Progress, Completed.
STEP 5: someone on team starts creating card, one per item/sub-item/task and ASSIGN a lead for each item and put them all in the MileStones list
Presentation
You will your work in 2 ways:
1) LIVE: during class you will have 10 minutes to present your tutorial. You will not be able to go over every detail necessarily as the length requirement states a max of 30 minutes on your own but, you should give a good overview.
2) RECORDED: by recording yourself and making a YouTube video again keep it to 10 minutes in length. You must be able to clearly hear your voice in the demonstration. You can make the video using a screen capture software like Zoom or Adobe's Captivate ( https://www.adobe.com/cfusion/tdrc/index.cfm?product=captivate) or CamStudio (http://camstudio.org/) . You may be able to get 30 day trial version of Captivate and CamStudio is open source. I personally have purchased Captivate and use it. This will be good experience for the workworld when you need to record demonstrations.
IMPORTANT: because we are sharing this video with the entire class you can not make it Private but, for the duration of the rest of the class, you need to make it public.
Captivate Tip: Has "File->Publish To YouTube" option
- It will brint up the Video publisher and then the following 2 screens will ask you to login and information about your video you are uploading.
Evaluation
To BE published
Your grade will be termined through peer review. The following evalution form will be completed by each of the other and you will recieve an average of the values. The following form will be used:
**********peer review evaluation guidelines & grading********** TO BE ANNOUNCED PRIOR TO PRESENTATION
***google shared sheet for peer reviewing ***** TO BE ANNOUNCEPRIOR TO REVIEW
You will evaluate every other students except your own tutorial and presentation. This will be done with a shared google document that you will be given access to in one of our class periods (if you miss this it is your responsibility to request before reviews are due).
Topic
Must be approved by instructor. Topics are approved on a first-come-first-served basis.YOU must come up with your own topic It must be "novel" --NOT something we are directly covering.
Some topics chosen in the past include:
- Arduino based IOT System featuring AWS backend or Google backend
- Implementation of a Kafka backend on AWS for real time event stream handling.
- Design and Setup of AWS VPN
- Exploration and Use of Machine Learning Cloud Services - from IaaS to PaaS: a case study & implmentation with Google Vertex AI and AutoML and more
- ML in AWS Cloud: Sagemaker and more - from IaaS to PaaS: real implemention featured
NOW THOSE ARE JSUT A FEW PROJECT IDEAS ---There are many more!!!! It is your imagination and interest as a group that will decide what you do.
Gettting your own idea for a topic as well as getting material to build a Proposal
Search our library (try ACM and IEEE portals listed off library website...contact library reference personnel if you do not know how to do this) and on the Internet for information, images, research, etc. on this topic. Review materials and save all references including both library materials and on-line site locations (URL) as well as create a review/summary of the information in each piece of review material. See the requirements below for the on-line tutorial and presentation components of this project.
Some Links | ACM Search Portal (search on OOP topics) | IEEE Search Portal (search on OOP topics) |
---|
Deliverables & Evaluation: (EACH member of the group MUST turn in separately --even though it is the same content) -- see due dates at top
- Your Github repository URL AND your Github Pages URL are to be turned in. The Github Pages contain the documenation and the code of your implmeentation in the Github repository itself. The Github pages should have the format of the Documentation described above AND as such should include a link to the YoutuBe demonstration of your implmemenation
- Proposal turn into Blackboard -> Discussion Board -> Project 2 Proposal
- Progress Reports - see above
- Presentation and YouTube Video - Turn in the URL to your Github pages AND Github repository to
- Blackboard->Discussion Board->"Project 2-Final Presentation"
- Peer reviews- as to be discussed in class will be done in a shared google document (if you missed class it is your responbility to ask via email for access to this shared document AND complete reviews of all your fellow peers by the due date/time)