The Stream Media website will have a registration and login system and hosts various type of media content.
A Media Creator/Filmmaker has many types of media content such as films, trailers, music videos, short stories and books. These Contents are hosted on diverse platforms and accessible in different ways and forms such as YouTube (free to watch) or Amazon (on demand or with Prime membership) or on physical media such as DVDs or books.
How does the Media Creator/filmmaker go about letting his audience know what is available and accessibility and where? Stream Media website will provide a centralized platform for his customers to access all the content and learn more about them. It will provide an administrator a way to create, read, update and delete some the content and customers links, embedded videos or even exclusive content when logged in on Stream Media website. The high-level navigation of the website is as follow: home, media, frequently asked questions (FAQ) and Account.
Admin: Will have permission to create/read/update/delete (crud) of all data on the website.
media creator: Will have permission to perform crud for the content their own.
Registered User: will have access to private content and in future be able to buy product on the website.
Everyone else : can view all public media content.
MySQL database
Stores Users with their roles
Stores all media information such films, movie/video, books, Casting Crew and trailers
Hibernate 5
Maven Web Services consumed using Java
CSS
Bootstrap, Materialize or W3C CSS
Data Validator
Bootstrap Validator for front end
Logging
JavaMail API
AWS
CI tools in AWS
Materialize or W3C CSS
Books API/YouTube Api
Hibernate Validation
Hibernate Search
Lombok project
Unit Testing
JUnit tests to achieve 80%+ code coverage
IDE: IntelliJ IDEA