Features
As stated in the Overview page, this project consists of a multi-user platform wherein anyone can register an account. This product features a unique library for each individual user, where they can list, rate, review, the books they’ve read, music they listen to as well as movies or series they watch. Users can write reviews for their library items. In essence, it is a personal media library manager wherein the user keeps track of their specific items. They can use this product as a reference point to remember what they’ve read, listened to, or watched, whilst making use of the review and rating system to remember what they thought about their items.
The following sections contain information and explanations on how these features work.
Books
The books feature consists of three main components: Book, Author, Genre Book.
Genre Book
This contains the details of what genre a book belongs to. The following data structure is associated with a book genre.
bookGenreID
- This serves as the primary unique identifier for each genre book item.
genre
- This is considered the top level genre value for a book.
- An example of this would be:
Nonfiction
.
subGenre
- This is the level 2 genre value for a book, and is a further breakdown of the level 1
genre
item. - An example of this would be:
Philosophy
.
- This is the level 2 genre value for a book, and is a further breakdown of the level 1
Author
This contains basic details to identify a person as an author. Authors are exclusively used for the books feature. An author can have multiple books or zero books associated with it.
The following data structure is associated with an author:
authorID
- This serves as the primary unique identifier for each author item.
firstName
- The first name of an author.
- An example of this would be:
Walther
.
lastName
- The last name of an author.
- An example of this would be:
Smulders
.
additionalName
- This is an optional value for an author.
- An example of this would be:
John
.
Book
A book must have at least one author. It must have a bookGenre assigned to it at all times. Various core items are required.
The following data structure is associated with a book:
bookID
- This serves as the primary unique identifier for each book item.
title
- This is the book’s title and must be unique.
isbn
- This is the ISBN reference number of the book and must be unique.
pages
- Amount of pages the book consists of.
plot
- A short description of the book’s storyline.
cover
- The cover image reference of a book.
datePublished
- The date that the book was first published on.
dateAdded
- A local timestamp when the book was created in the database.
dateUpdated
- A local timestamp when the book item was last updated in the database.
authors
- All the authors associated with a specific book item.
genreBook
- The specific genre associated with a book item.
Movies
The movies feature consists of two main components: Movie, Genre Movie.
Genre Movie
This contains the details of what genre a movie belongs to. The following data structure is associated with a movie genre.
genreMovieID
- This serves as the primary unique identifier for each movie genre item.
genre
- This is the name of a specific genre item.
- An example of this would be:
Drama
.
Movie
A movie can have multiple genres associated with it. It must have at least one genre associated with it at any given time.
The following data structure is associated with a move item.
movieID
- This serves as the primary unique identifier for each movie item.
title
- This is the title of the movie and must be unique.
plot
- This is a summary of what the movie is about.
poster
- The cover image reference of the movie.
dateReleased
- The date that the movie was first released on.
dateAdded
- A local timestamp when the movie was created in the database.
dateUpdated
- A local timestamp when the movie item was last updated in the database.
genres
- This is the genres the movie is associated with. As stated earlier, a movie can have multiple associated genres.
- An example of this would be:
[ "Drama", "Action" ]
, which means that the movie item falls into the category of being both aDrama
andAction
movie.
Series
The series feature consists of three main components: Series, Seasons, Genre Series.
A series must contain some core information as well as at least one season
and genre
associated with it.
Genre Series
This contains the details of what genre a series belongs to. The following data structure is associated with a series genre.
genreSeriesID
- This serves as the primary unique identifier for each series genre item.
genre
- This is the name of a specific genre item.
- An example of this would be:
Adventure
.
Seasons
Seasons belong to a series. It is the second level structure of a series, and a container for all the episodes associated with that specific season of the series. This application is not concerned with the individual episodes of each season.
The proposed data structure for a season is as follows:
seasonID
- This serves as the primary unique identifier for each season item.
plot
- This is a summary of what the season is about.
poster
- The cover image reference for the season item.
number
- This is the number of the season, for example
1
denotes the first season of the series and3
would mean that it’s the third season of the series.
- This is the number of the season, for example
dateReleased
- The date that the season was first released on.
dateAdded
- A local timestamp when the season was created in the database.
dateUpdated
- A local timestamp when the season item was last updated in the database.
Series
A series can have multiple genres associated with it. It must have at least one genre associated with it at any given time.
The following data structure is associated with a series item.
seriesID
- This serves as the primary unique identifier for each series.
title
- The title of the series and it must be unique.
plot
- The summary of what the series is about.
poster
- The cover image reference for the series item.
dateReleased
- The date that the series was first released on.
dateAdded
- A local timestamp when the series was created in the database.
dateUpdated
- A local timestamp when the series item was last updated in the database.
genres
- A list of genres associated with a specific series item.
seasons
- A list of seasons associated with a specific series item.
Music
The music feature consists of three main components: Artist, Album, Genre Music.
Genre Music
This contains the details of what genre an album belongs to. The following data structure is associated with a music genre.
genreMusicID
- This serves as the primary unique identifier for each music genre item.
genre
- This is the name of a specific genre item.
- An example of this would be:
Classical
.
Artist
Each music album must have an artist. This is the simple representation of a person, similar as the author to a book. An artist can have multiple music albums associated with it.
The following data structure is associated with an artist.
artistID
- This serves as the primary unique identifier for each artist item.
firstName
- The first name of an artist.
- An example of this would be:
Walther
.
lastName
- The last name of an artist.
- An example of this would be:
Smulders
.
additionalName
- This is an optional value for an artist.
- An example of this would be:
John
.
Album
An album must have at least one artist. It must have a musicGenre assigned to it at all times. Various core items are required.
The following data structure is associated with an album:
albumID
- This serves as the primary unique identifier for each album item.
genreMusicID
- This is the reference to a genre music item, which is associated for this specific album.
cover
- The cover image reference for the album item.
datePublished
- The date that the album was first released on.
dateAdded
- A local timestamp when the album was created in the database.
dateUpdated
- A local timestamp when the album item was last updated in the database.
Libraries
There are two main concepts for this project when it comes to libraries. The user library and the system library.
System Library
The system library is regarded as the pure informational aspects of the supported media features (books, movies, series, music).
Users with administrative privileges will be able to maintain the details of the books, movies, series and music elements. The details associated with these media items are propegated to every user who makes use of the application.
This is synonymous with a community library (containing books, movies, series, and music) in real life.
User Library
The user library is regarded as the user’s personal version of the community library. The items that they’ve added still contain the core details obtained from the system library, but they can add their own review and rating on each item, enabling them to keep track of what they’ve watched, read or listened to and what they thought about the item in question.
This means that a user will be able to browse the system library and add items to their personal library. The system library data does not change. The user’s personal library is unique to them and no other user will be able to interact with it.