This is the central repo for Team Red Wings' final project.
For details on the project please check the /docs directory.
For details on our progress/timelogs/assignments check the team website
This is the central repo for Team Red Wings' final project.
For details on the project please check the /docs directory.
For details on our progress/timelogs/assignments check the team website
Here's the scope first draft for the scope and requirements. Let me know what you think @nymim93 @tmwhite
Problem: It is common to here presenters complain about the hassle of giving a presentation. Even before giving the presentation they must get the presentation in a nice format and onto a specific computer. Then, during the presentation they are typically tied down to the podium/central computer to navigate through their presentation. The audience also suffers in certain cases where it's difficult to see the screen and or hear the presenter. A natural occurrence of this dilemma is for teachers and presenters.
Scope: Black Hawk will mitigate these issues by creating a website to host one's presentations. Delivering a presentation will be a matter of logging in to the website and beginning. A presenter is then able to use any Internet connected device as a remote to control the presentation. The presenter is also able to draw on top of the presentation screen. Not only will these actions (previous/next page, drawings) be transmitted to the screen, but the audience members are able to follow the presentation on their own devices.
Outside of the classroom there are office hours. These meetings between teacher and student usually require a collaborative writing area. Along with the drawing feature allowed for presentations, teachers will be able to have virtual white-board sessions allowing for interaction between teachers and students.
Stake Holders: The stakeholders are divided into 2 groups: Dr. Andrew Greene (the client), and the developers (as our grades are on the line).
Risk Analysis: Our product will be freely hosted on GitHub and Heroku, thus incurring no cost on any of the stakeholders. While there is a minor risk of the presentations not broadcasting correctly to other devices, the chances the website will go down are minuscule. So, a teacher can at the least download his/her presentation and continue accordingly. The largest risk for the project is the loss of time and sleep on the developer end, as well as a deep sadness for the client.
Requirements:
Ensure that the owner can live stream their audio when giving a presentation. The owner should have the ability to turn this functionality on or off, and only one device the owner is logged on to can do this at a time. Use RecordRTC and Sockets.io for the audio streaming.
Include all of the specs asked for by Val
Make sure that if a user calls edit or delete on a presentation ID, that the user is the owner of the presentation.
Because JavaScript is different, we can't do a Class Diagram like usual in an OO-language. So we do a pseudo-diagram of prototypes.
Our "Objects" are Presenter and Presentation; these will be our Models in MongoDB. The Presenter is our model of the user giving the presentation. The Presentation is our model for the PDF, metadata, and sockets for a presentation.
Presenter |
---|
_id : MongoObjectID |
name : String |
email : String |
password : String |
Presentation |
---|
_id : MongoObjectID |
author_id : MongoObjectID |
title : String |
pdf_src/pdf_path : String/Buffer* |
audio : Socket ** |
+ master : Socket |
+ listener : Socket |
events : Socket ** |
+ master : Socket |
+ listener : Socket |
** We modify the traditional UML diagram to show the sub-attributes of the audio and events Sockets.
Let me know if you guys see anything that needs changing.
Her guys, here's the basic layout for presentation 1, it's in Markdown right now:
Let me know if you see anything that needs fixing. I'm sending Val a draft tonight
% Project Blackhawk - A first look
% Team Red Wings
% Andre Oliveira, Blerim Cobaj, Tyler White
- Andre P. Oliveira (Project Manager)
- Mim Cobaj
- Tyler White
. . .
. . .
The client, Dr. Andrew Greene, has his hopes and dreams at stake.
. . .
The developers have their grades on the line...
- We're minimizing our monetary cost to zero.
- We will use GitHub as our VCS, and Heroku for product deployment
- Both are free platforms
- Development will be done locally on our desktops/laptops
- The website going down; Heroku/GitHub go out of business
- This doesn't seem likely, but if it does happen: we can migrate to BitBucket, OpenShift, AppFog, Cloudify, etc.
- "The Cloud" is a big place
- Implementation is done poorly/breaks - teacher cannot give presentation
- If the website is up, the teacher can still download the presentation, and continue as is tradition
- If the website is not up, we have a problem.
to fill in
Here's the short list of extra credit options we've mentioned. Feel free to work on any of them. I'm going to be doing the QR code and multicolored pens right now. Claim your feature here so we don't all do the same thing.
Create development and setup Code Ship for auto pushes to development
Let's get together the list of possible enhancements to the project, @nymim93 @tmwhite
let me know what else you guys think of
Validate the users uploaded files to ensure that they are pdfs. Send back a response to the user on the /uploadPdf page if the user didn't upload a valid pdf file.
Tyler and I think we should have 5 types of issue labels:
Discussion: like this, if we want to open up an idea for debate
Feature: the main requirements/details for a feature
Bug: raising attention to a bug and its discussion
Question: add this to any issue you have a question about
Help Wanted: if any task becomes overwhelming add this to show the team
Labels can be added/deleted at any time. Any other thoughts?
Setup whiteboard for each user with the route \whiteboard\USERNAMEorID that handles events and broadcasts the events to everyone viewing the page.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.