Skip to content

Instantly share code, notes, and snippets.

@anchetaWern
Last active November 22, 2015 12:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anchetaWern/9572b8dc2b68112b0f2b to your computer and use it in GitHub Desktop.
Save anchetaWern/9572b8dc2b68112b0f2b to your computer and use it in GitHub Desktop.
VideoUploader

#VideoUploader

Create an application that would allow a user to upload videos to Youtube. The uploaded videos should be searchable. There are 3 types of users that can use the system: admin, content providers & viewers.

The admin is responsible for:

  • creating accounts for uploaders

The uploader is responsible for:

  • uploading videos and adding details (title, category, tags) to it.
  • rating videos uploaded by other content providers (they cannot rate videos that they've added themselves)

The viewer is responsible for:

  • creating their own account
  • rating videos

##Admin

The admin should have a built-in account in the database (directly add the account details in phpmyadmin or use a database seeder) the admin can then login using that account. Once logged in, the admin can create accounts for content providers.

##Content Providers

Content Providers can upload videos to Youtube. The Youtube API can be used for this. For each video, the following details should be saved in the database:

  • title - a descriptive title of the video
  • description - the description of the video
  • views - number of views
  • likes - number of likes
  • category - the category of the video, this can be used when searching for videos
  • tags - any descriptive words that can be used when searching for the video
  • user_id - the ID of the user who uploaded the video

Content providers can also search and watch videos (via Youtube embed) and rate the videos by other content providers. When they view their own videos, the like button should be hidden.

##Viewers

Viewers can create their own account by means of signing up with their email and password. In order to activate the account, the user has to click on the verification link sent to their email.

Viewers can search videos by title. And they can filter it with tags and category.

Viewers can also watch videos and rate them. Every time a video is watched, the views of that video should be incremented by one. When the like button is clicked, the likes in that video should be incremented by one. When the like button is already clicked and the user clicks on it again, the likes in that video should be decremented. The videos viewed or liked by each of the viewers should be stored in the database so that the views on that video doesn't increment whenever the user refreshes the page since the app already knows that the video has already been viewed by that user before. The same with likes, the interface should already show that the video has been liked if the viewer has already liked it before.

##Rules & Guidelines

  • Use git to track the changes made to your project. Every member should have their own Github account and the username should be set to their first name and last name (e.g. YohAsakura).
  • Use Github to upload your project. Progress will be checked every week, so there should be a commit uploaded on Github at least once a week.
  • You can use any front-end framework (bootstrap, foundation) to ease the work you need to do with styling the project.
  • Use the Laravel framework to implement the project.
  • You can use any JavaScript or PHP library that can help you to easily implement specific features such as file upload.
  • For each member of the group, provide a list of things done in the project.
  • Project Documentation:
    • Brief summary of what the project does
    • Features
    • Database (brief description of the tables and columns used and how are they connected to each other)
    • Libraries used
    • How to use the system
  • The project will be presented by each group.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment