Giter Club home page Giter Club logo

popcornviewer's Introduction

![logo](http://i.imgur.com/NWtak4c.jpg)

PopcornViewer

Dependencies

Popcorn Viewer requires the google-gdata .NET library and Adobe Flashplayer.

Our Mission Statement

What we hope to accomplish is simple: We want to bring friends and families across the globe closer together. Watching a movie is commonly considered a family past-time and groups of friends often gather for a weekly movie night. As time passes, people often relocate and have to leave their loved ones behind. This is especially true for military personnel and those who do business in a global setting. With Popcorn Viewer, friends and family will once again be able to share in those magical moments of bonding even if they cannot physically be together.

How to Compile in Visual Studio

1. Download and unzip the source code or clone the repository.

2. Open PopcornViewer.sln in Visual Studio.

3. Choose "PROJECT" from the toolstrip menu and select the option "Add Reference...".

4. Browse to your installation location of the Google Data API default being "C:\Program Files (x86)\Google\Google Data API SDK\Redist".

5. Select Google.GData.Client.dll, Google.GData.YouTube.dll, and Google.GData.Extensions.dll.

At this point you will be able to edit and compile the code as you see fit.

popcornviewer's People

Contributors

briancatan avatar anthonylonigro avatar chrismoody avatar antonstrickland avatar brycemehring avatar

Stargazers

 avatar  avatar

Watchers

James Cloos avatar  avatar  avatar  avatar  avatar  avatar

Forkers

brett1981

popcornviewer's Issues

Tabstops and General UI Usage

None of the major UI components in any of the forms have had their tabstops ordered properly. Some forms appear to be correct, but the main form definitely needs some work. In addition pressing enter in some spaces that the user would assume would "save" or "submit" do nothing. We want enter to work as if it were a submit or save button press in these situations.

Sound When Sending Chat Message

When pressing enter in the chat box, it produces a Windows "ding" which is out of place since it usually signals an improper input or a prevented action. The chat works as intended despite the error noise.

Chatting and Playlist Don't Update on Host Disconnect

Connected clients, when disconnected, still display members chatting and information about the playlist despite not being in a room. When terminating the program after disconnect, an exception is thrown but unhandled. "Unable to write data to the transport connection: An established connection was aborted by the software in your host machine." Probably refers to the "Good-bye" message sent to the server when a client disconnects and how it can't be sent since there is no more connection.

Host Can Access Connection Window

The host currently can connect to or host a room while already hosting a room. We need to make sure that once a host has decided to host that he either needs to close the program or terminate all hosting processes before accessing this window.

Connecting to a Server Hang

If a server is not there and you try to connect to it, the program hangs. See connection window ConnectButton_Click().

Toolstrip Menu Items Broken

Basically none of the toolstrip menu items work. We need someone to start making them. Copy+Paste specifically are centered around the Playlist box and now that they have universal hotkeys need universal applications. Set it up so they can work with chat, chat box, and usernames as well as the playlist. Don't bother with playback or settings. Save should save the current playlist in a file.

Deleting Videos Playlist Bold Mismatch

When deleting a video lower in the playlist (closer to the top), the now playing bold does not update when triggered from either the client or the host. The index of boldness stays the same even through the index of currently playing has updated.

Playlist Export and Import

A really great feature that will help improve usability would be the ability to export playlists to a file and load them from the same file. There should be an option to access save and import in the playlist context menu and the toolstrip menu. There should be Save, Save As, and Load. They should, when appropriate, bring up the file dialog box to choose save location and name. The default opening spot should be the location of the executable.

Internet Access

Unknown as to what happens when the program tries to run offline. We need to have a safety net for users who start the program without access and for those that lose connection while hosting and those that lose connection while being a client.

Change Voting to be UI Friendly

Voting seems to be working right now (locally), but we need to make it interface smoothly with the UI. There probably should be an option in the context menu of the playlist as well as an option in the Toolstrip Menu under the playlist category (which should include the playback options as well). There shouldn't be a single item "Vote" menu. There should be an initial announcement when the vote starts which tells the time limit and a 30 and 10 second warning time (more or less) for when it closes. Vote to skip announcements should also say when a member has voted anonymously and display a counter (5/10 for example) for how many people have voted out of how many people are required to skip. If the vote passes in the time limit, the playlist should advance.

Is it possible to right click and delete?

Instead of left clicking so you have a selected item and then right click and deleting, is it possible to make it so you can just right click any of the videos and delete?

Allow Collapse of Panels

We should let the panels collapse so users can hide them under "View" in the toolstrip menu. Hide the playlist, local files, both, or list of people chatting, the chat itself, both.

Player Unpauses on Client Connect

Whenever a client connects to the host, it automatically plays the video even if the host was paused prior to the client connecting.

Use Case Diagrams

Next Thursday we're going to be needing to turn in our Requirements Analysis report, so I thought I'd make an issue here since we need to be focusing our communication through Github and Skype more often.

We should start thinking about how our users should be mapped out and how they will interact with our application, but other than that I guess we'll just sit tight until he posts the deliverable officially.

Username Collisions - Need Unique Restrictions

Due to the nature of our hashtable, we don't handle collisions well. In fact, a single hash collision will cause the server to crash. Thankfully the likelihood of this happening with unique usernames makes fixing this a non-issue. Unfortunately, we don't enforce unique usernames. We need to make sure that users connecting to a server do not have a nickname specified that another member already connected to the group has.

Client Connect to Multiple Hosts

There may be problems if a client, while currently connected to a host, tries to connect to another host or tries to host himself. We need to test this and see what happens and then make sure that when the client tries to connect to a new host he terminates all connection with the old host first.

Spell Checker

Let's try and have this done by March 3rd when we meet with Morales. Basically just spell check things in the outgoing chat box. Don't worry about spelling in the actual chat history.

Adjustable Chat Bar Hardcoded

When you change your name, the entire chat bar goes off screen or is offset. This is probably because of the adjustable name changing the position of the chat bar to a fixed location instead of being relative to the edge of the screen.

Nicknames Can Be Any Length

Nicknames, while nice to have them long, start having problems at a certain length with the chat box. Either the chat box needs to be adaptively sized (good solution) or the nickname label needs to be limited to a certain number of characters (bad solution).

Playlist Drag/Drop Function is Inefficient

The farther away you drag, the longer rearranging takes. Of course shifting in a list is slow, but this lag is based on distance from the source and not how many items need to be rearranged.

Icon

We need an Icon.

Drag/Drop Text Spotty

Unable to drag/drop Youtube URL's as text into the Playlist anymore. Most likely broken because of rearranging Playlist functionality.

Website Creation

We need to create a website and host it for downloading our client and providing useful documentation on its use.

Clients Cannot Modify Playlist

When adding/deleting videos from the playlist, the clients don't send messages to the host in order to handle the changes.

Delimiter Symbols and Nicknames

Delimited symbols used in the chat program can easily be entered plaintext into the chat box. '$' in particular messes up chat. Character names must also be alpha-numeric only but there are no restrictions in place for this. Chat rooms can have multiple clients broadcasting the same name.

Unexpected Rare Pause on Seek

There appears to be a small chance to have some or all clients pause when seeking in a video. The problem is far more likely to be reproduced when seeking from a client instead of the host. The problem was mostly mitigated by the SeekImunity boolean, but it still persists.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.