-
Notifications
You must be signed in to change notification settings - Fork 3
Specification & Analysis
The project is divided into Maven modules for each major component. For the first milestone, the major component is backend
.
A typical user will be a TV maniac :-) User is identified by username. Every user has his password persisted in form of hash. His profile consists of age, gender and e-mail address.
Administrator is a specific type of user. We decided to implement administrator users using a flag isAdmin
. Another considered options:
- Implementing user roles - too much effort for low profit
- Inheritance (Admin as a subtype of User) - not flexible and problematic database representation
Every user can subscribe to his favorite channels or transmissions.
- Create/manage personal account
- Show TV schedule
- Show all channels of a specific type
- Show all transmissions of a specific type
- Search channels/transmissions by name
- Show details of a transmission
- Subscribe to favorite channels (requires login)
- Subscribe to favorite transmissions (requires login)
- Give feedback for a transmission (requires login)
- Create/manage channels
- Create/manage transmissions and their schedule
- (Nice to have) Show statistics
Channel has its name, language and type (sport, music, documentary, movie, commerce, children).
Transmission is a general representation of movies/shows/events etc. Each transmission is described by name, optional longer text description, type, length, age availability and language.
Age availability is a restriction on age of a viewer. We decided to implement this using enum. Ages in enum: 12/15/18/unrestricted. Type of transmission can be movie, tv series, TV show, sports event or documentary. Language can be stored as some standard code (eg. ISO 639-1).
Each transmission can have more occurrences. For example, a movie usually has a single occurrence (except for reruns) but series can have more occurrences (parts). In fact, occurrence is a channel scheduling unit and holds information about start date/time of the transmission a channel (on which the transmission occurres). Each occurrence can be optionally named (to distinguish different parts of a single transmission) and flagged as rerun.
If transmission has more occurrences, user should be able to display all upcoming occurrences in one place.
User can give a feedback to a transmission. Each user can give a single feedback per transmission in form of star rating and short text review.
- Home
- Assignment
- Specification & Analysis
- User Interface
- Team Dashboard (CZ)
- Git Workflow (CZ)
- Used Technologies