Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
Contents
1 User Guide 31.1 Regular Pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.2 Admin Pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.3 Group Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2 Developer Guide 192.1 Database Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192.2 Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202.3 Group Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
i
Cinephile Documentation, Release 1.0
Team Cinephile Team
Members
• Talha Çolakoglu
• Sinasi Eren Senel
• Selin Sezer
• M.Sadık Ugursoy
• A.Cihan Ak
One-click away platform which users can access the details about any movie they want.
Contents:
Contents 1
CHAPTER 1
User Guide
The Cinephile Project
In the Cinephile Application, the system holds the data for the movies, festivals, actors and actresses and givethe users the information they want about them. Only admins can manipulate the data by adding or removingentities. There are 6 main navigation buttons on each page and also a login and a register button if the user is notyet registered. The registered user have the ability of making comments or voting the comments.
1.1 Regular Pages
These are the pages which every user can access. Since they are for public usage, they do not includeany update, insert or delete operations for the movies, festivals or people. They are used only forexploring and retrieving data from the database.
1.1.1 The Homepage
Homepage has a “Featured Movies” slider on the top which shows the highmost rated films. Below that, thereare “Movies”, “Festivals” and “Actors/Actresses” sliders. In each slider, there are corresponding titles with theircovers, for example in Movies slider there is a list of movies inside. When the user mouse over any of them, he cansee a small descripton and the name/title for the item. On the click action, it redirects the user to the correspondingitem (movie, actor, actress or festival).
Figure 1.1: The featured movies slider on the homepage
1.1.2 The Movies Page
On the movies page, all the movies are sorted according to their genres. The same slider technique is used for eachgenre. When the mouse is over on a movie, it shows it’s title, description and votes and on mouse click, it redirectsthe user to the corresponding movie’s page which is created dynamically. In order to comment on the movie, the
3
Cinephile Documentation, Release 1.0
Figure 1.2: The movies slider on the homepage. It shows the description when the mouse is over the item.
user should be registered. If the user is registered, the comment sections is available for the commentation. If not,there will be a “please log in or register” message.
The genres for the movies are: Drama, Mystery, Romance, Thriller, Adventure, Sci-Fi, Crime, Fantasy, Horror,Adult and Detective. The information for the each movie is about it’s duration, title, year, genre, director, cast,producer, festival and description. These informations are shown on a new page with the comments (if there isany).
1.1.3 The People Page
On this page, all person information are shown. All actors, actresses, directors, writers in other words, all peopleare sorted according to their jobs in this page. The same slider techique is used for each job in this page too. Themouse over and mouse click events are the same with the homepage and the movie page. The comment sectionfor people is included too (which requires logging in for commenting or voting comments).
In the corresponding person’s page (the pages created when the user clicks a person), the name, birth year, job,nationality and a small biography are shown. If there are any comments, they are shown below as well.
1.1.4 The Festivals Page
The festival page contains all the festivals in the database. The slider is the same with the homepage and moviepage just as in the people page. The mouse over event shows the corresponding title for the festival with a smalldescription including the date and place. On the mouse click, the user redirecting to a new page which shows allinformations about the festival. These informations are name, place, year, website, genres, movies and description.The comment section has the same rules with previous pages.
1.1.5 The Contacts Page
This page contains the conctact with their contact informations.
1.1.6 The FAQ Page
This page will include the frequently asked questions about the application when they exist.
4 Chapter 1. User Guide
Cinephile Documentation, Release 1.0
Figure 1.4: The details of a person.
1.1.7 The Register Page
Users can register from this page. Minimun requierd character for username is six characters. The e-mail alsoshould be longer than six characters and must be in a correct form. Minimum requierd character for name andsurmane is three characters and they all must be letters. Finally the password should be longer than six charactersas well and the password should match with confirm password. Once all the conditions are satisfied, the user canregister with “register” button. The registered users are stayed registered as long as they are not deleted by anadmin or the user himself.
1.1.8 The Register Page
Users can register from this page. Minimun requierd character for username is six characters. The e-mail alsoshould be longer than six characters and must be in a correct form. Minimum requierd character for name andsurmane is three characters and they all must be letters. Finally the password should be longer than six charactersas well and the password should match with confirm password. Once all the conditions are satisfied, the user canregister with “register” button. The registered users are stayed registered as long as they are not deleted by anadmin or the user himself.
1.1.9 The Login Page
The registered users can login through the login page. If the name and the password are correct, user logs in theapplication and free to comment for any movie, person or festival or vote for any previous comments.
Currently the users can vote for their own comments. The voting is allowed for one per comment.
6 Chapter 1. User Guide
Cinephile Documentation, Release 1.0
Figure 1.5: The details of a festival.
Figure 1.6: The contacts page.
1.1. Regular Pages 7
Cinephile Documentation, Release 1.0
Figure 1.7: The register page.
Figure 1.8: The register page.
Figure 1.9: The login page.
8 Chapter 1. User Guide
Cinephile Documentation, Release 1.0
1.1.10 The User Page
This page is available once the user logged in. In this page, user can update his password and name-surname andeven delete his account. The page shows the current status of the profile. The buttons are available for change thepassword, update and delete. The update for username and e-mail is not available.
Figure 1.10: User page which allows users to change their information.
1.2 Admin Pages
These pages are for advanced users. The admins can manipulate the database from these pages easily.They can add movie, person, festival, category and user. They also have the ability to remove them orupdate them.
1.2.1 The Admin Console
On the main page, if the logged in user is an admin, on the left hand side, there will be a small arrow sign. Whenit is clicked, the admin console pops up.
Figure 1.11: The admin console as a pop-up menu on the left.
1.2. Admin Pages 9
Cinephile Documentation, Release 1.0
From this console, admin can make various changes to the database. Each category has sub categories under itwhich indicated by a plus sign next to them. The tree of the console can be shown as:
Movie Administiration>List Movies>Add Movie
User Administiration>List User
Person Administiration>List Person>Add Person
Festival Administiration>List Festival>Add Festival
Category Administiration>List Category>Add Category
Database Administiration>Reload Sample Database
1.2.2 Movie Administiration
In the movie administration, there are two options.
List Movies
The first option is listing the movies. Ad admin can list all the movies inside the database and manipulate themby using this option. When this option is selected, the page is filled with the all movies fetched from the database.The movies are shown in a table with the ID, Title, Year, Duration, Score and Options columns. The first fivecolumns show the information but the sixth column, which is the options, actually has six buttons inside to allowadmin to manipulate the corresponding movie. These buttons are update, delete, directors, casts, screen writer andproducers in the given order.
Figure 1.12: The listed movies in a table.
In the options column, when the admin presses the update, the page will go to a page similar to the add moviepage. It is simply an add movie page with the filled informations and admin can change these informations inorder to make the update.
10 Chapter 1. User Guide
Cinephile Documentation, Release 1.0
When delete button is pressed, the corresponding movie is deleted immediately without asking twice.
On the directors button, another page is loaded to the screen with all the persons with a tick button in front ofthem. The ticks implies the persons who directed the corresponding movie. Admin can change the ticks andassign different persons to be the director of the movie. The casts, screen writer and producer buttons does thesame thing for the cast, screen writer and producer. The screen writer has a minor difference. A movie can haveonly one screen writer so there are no tick buttons in front of the persons. There is only an assign button to assign.
Figure 1.13: The options for the listed movies (update page on the left, director on the right).
Add Movie
The second option in the movie administration is the add movie. In this option, admin can add any movie to thedatabase by entering the required information to the form.
Figure 1.14: Movie add page.
1.2. Admin Pages 11
Cinephile Documentation, Release 1.0
1.2.3 User Administiration
The user administiration has only one option which is the list users. The listig the users will show all registereduser as a list with their informations about their user IDs, names, e-mails, roles and user names. The role can bea user or an admin. The admin can delete the users from this list by clicking the trash symbol on the right of theany user.
Figure 1.15: The table of all listed users.
1.2.4 Person Administiration
The person administiration has 2 options. The one of them is list person.
List Person
This option allows an admin to see all the persons listed according to their IDs. List consists of 6 columns whichare Id, name, surname, birth year, nationality and options. The option columns has an update button to make somechanges to the person and a delete button for deletion. Update button simply redirect the user to add person pagewith already filled information of the relative person. The desired changes can be made and updated through there.
Add Person
In this option, there is a form which asks for the information of the person who is desired to be added. Theinformations are first name, last name, birth year, nationality, job, height, weight, imageURL and description.Birth year, weight and height should only consist of numbers and URL should exist with an image. After theseconditions are satisfied, the person is added to the database.
1.2.5 Festival Administiration
This administiration has two options too.
12 Chapter 1. User Guide
Cinephile Documentation, Release 1.0
Figure 1.16: The table of all listed persons.
Figure 1.17: Add person page.
1.2. Admin Pages 13
Cinephile Documentation, Release 1.0
Add Festival
Add festival option, allows admins to add a festival to the database. It requires to fill in a form which asks forfestival name, year, place and description. Once all the information is entered, the festival can be added by pressingthe add festival button.
Figure 1.18: Add festival page.
List Festival
This option allows admins to see all the festivals ordered by their IDs as a list. The list has Id, name, place, year,website and options columns. Option column has two buttons inside: update and delete. Update button goes toadd listing page with already filled information about the relative festival. Admin can change these informationsand in that way, he can update the festival. Pressing delete button immediately deletes the festival.
Figure 1.19: The table of all listed festival.
14 Chapter 1. User Guide
Cinephile Documentation, Release 1.0
1.2.6 Category Administiration
This administiration has two options either.
List Category
To list all the categories in the database, admins can use this option. It creates a list which has all the categories init ordered by their IDs. List consist of IDs, type and options columns. Types has the category type and options hastwo buttons: update and delete. While delete button immediately deletes the category from the database, updatebutton opens an add category page with filled informations relative to the selected type and allows admin to changeand re-add the category.
Figure 1.20: The table of all categories inside the database.
Add Category
This option allows admin to add a new category. Admin should enter the category name to the box and thenpressing the button will do it.
Figure 1.21: Add category page.
1.2. Admin Pages 15
Cinephile Documentation, Release 1.0
1.2.7 Database Administiration
In this administireaiton, admin only has one option and it is reloading the database. This option reloads thedatabase to a basis database (default).
1.3 Group Members
1.3.1 Parts Implemented by Talha Çolakoglu
1. Movie pages
• AddMoviePage.html
• MovieMainPage.html
• MoviePage.html
• ScreenWriterToMoviePage.html
• ConsoleListMovies.html
2. Category pages
• EditCategory.html
• ConsoleListCategory.html
• EditCategoryLink.java
• ConsoleListCategoryLink.java
3. Utility Pages
• HeaderPanel.html
• UserInfoPanel.html
1.3.2 Parts Implemented by Sinasi Eren Senel
1. User pages
• ChangePasswordPage.html
• ConsoleListUser.html
• LoginPage.html
• RegisterPage.html
• UpdateUserPage.html
• UserPage.html
2. Utility pages
• UserConsole.html
• UserLoginRegisterPanel.html
• CommentFormPanel.html
• CommentPanel.html
16 Chapter 1. User Guide
Cinephile Documentation, Release 1.0
1.3.3 Parts Implemented by Selin Sezer
1. Festival pages
• AddFestivalPage.html
• FestivalMainPage.html
• FestivalPage.html
• ConsoleListFestivals.html
2. Contacts page
• ContactPage.html
3. Utility pages
• FooterPanel.html
• AdminConsole.html
1.3.4 Parts Implemented by M.Sadık Ugursoy
1. Homepage
• HomePage.html
2. Person pages
• PersonMainPage.html
• ConsoleListToPerson.html
3. FAQ pages
• FAQPage.html
4. Utility pages
• NavigaitonPanel.html
1.3.5 Parts Implemented by A.Cihan Ak
1. Person pages
• EditPersonPage.html
• PersonPage.html
• PersonToMovie.html
2. Utility pages
• UserConsole.html
• UserInfoPanel.html
1.3. Group Members 17
CHAPTER 2
Developer Guide
2.1 Database Design
explain the database design of your project
include the E/R diagram(s)
2.1.1 Database Design
Database uses one to one and many to many relations (1:1 and n:n). In the application there were movies, people,festivals and users. Their values (informations) are hold in a table. But there are some attributes which has morethan one values for a class (for example, for a movie, there could be two directors, two categories etc.) In order tosolve this issue, relations are used. In the application the relation between category and movies table is satisfiedby another table called “Movie_Category”. Movie and Movie_Category tables have 1:n relation since a moviecan have more than one category. The Movie_Category table holds the movie id and category id in its rows. Forinstance if the movie with the id 4 should be in the categories with id 3 and 6, the Movie_Category table have tworows for that movie:
MOVIEID CATEGORYID4 34 6
In that implementation, the informations with only one value (like name, id, year) is in the movie table, and theinformations with more than one values are in the relation tables. This sturcture holds for all classes (tables) in theapplication.
In the design the stability of the tables are also considered (the values that are not supposed to remove shouldnot removed), thus cascade and restrict deletes/updates are used. For example, when a person is deleted, thecasting and directing relations releated to that person should be removed as well however; when a directing tupleis removed, it does not mean that the person releated to that tuple should be removed from the person table aswell. It should only delete the relation of the person with the corresponding movie.
2.1.2 Sample Database Tables
MOVIE
19
Cinephile Documentation, Release 1.0
MOVIEIDTITLE YEAR VOTESSCOREDURA-TION
STORYSCREEN-WRITER
ADDED-BYID
COVER_IMAGE_URL
1 Ma-sumiyet
2006 13 10.0 110 Story 1 1
2 Kosmos 2009 10 5.0 122 Story 12 24 Inter-
stellar2014 0 0.0 169 Story 11 1
5 DuvaraKarsı
2004 0 7.0 142 Story 4 1
6 PulpFiction
1994 0 0.0 154 Story 1 2
7 ForrestGump
1993 0 0.0 141 Story 5 1
CATEGORY
CATEGORYID TYPE1 Drama2 Mystery3 Romance4 Thriller5 Adventure6 Sci-Fi
MOVIE_CATEGORY
MOVIEID CATEGORYID1 13 23 33 44 55 15 3
Here the relation of the movie and the category is clearly seen.
2.1.3 E/R Diagram
The E/R Diagram of the database is given below:
2.2 Code
The codes for the application can be divided into four basis.
2.2.1 APIs
The APIs are the classes which allows acces to the database. In other words they connect application with database.In this category, the application has “Facade” for every class (movie, person, category, comment, festival, user).
There is a base class called “Facade”. The “CategoryFacade”, “CommentFacade”, “FestivalFacade”, “MovieFa-cade”, “PersonFacade” and “UserFacade” are derived classes from this base class.
Derived classes have the add and search methods for their specific type (for example PersonFacade have thesefunctions for persons). Derived facade classes have some inline SQL code to communicate with database. Forexample the following code block uses a delete statement from SQLLite:
20 Chapter 2. Developer Guide
Cinephile Documentation, Release 1.0
Figure 2.1: The E/R diagram of the database
public boolean DeletePerson(int ID) {try {
String query = "DELETE FROM PERSON WHERE ID = ?";PreparedStatement pstmt = this.getDB().prepareStatement(query);pstmt.setString(1, Integer.toString(ID));pstmt.executeUpdate();pstmt.close();
return true;
} catch (SQLException e) {throw new UnsupportedOperationException(e.getMessage());
}}
Here on the query string, the place with the ”?” symbol is replaced with the ID by using PreparedStatementfunctions (setString and executeUpdate).
The derived classes also have other functionalities like check, update, get etc. The main logic in these classes areto get and set the data from the database. In this purpose, they are written with embedded SQL code inside. Somesamples of the embedded SQL codes are given below.
* INSERT INTO PERSON (FIRSTNAME,LASTNAME,PRIMARYJOB,BIRTHYEAR,NATIONALITY,HEIGHT,WEIGHT,SHORTDESCRIPTION,IMAGE) VALUES (?,?,?,?,?,?,?,?,?)
* SELECT ID FROM PERSON WHERE FIRSTNAME = ’#firstname#’ AND LASTNAME = ’#lastname#’
* SELECT * FROM PERSON WHERE NATIONALITY = ’#nationality#’
* Delete From USER Where ID = ?
* Select * From USER_COMMENT_DISLIKES Where USERID =
* DELETE FROM DIRECTING WHERE MOVIEID = ?
* UPDATE FESTIVAL SET (NAME = ?,FESTYEAR = ?, PLACE = ?,INFO = ?, WEBSITE = ? ) WHERE MOVIEID = ?
2.2. Code 21
Cinephile Documentation, Release 1.0
* INSERT INTO MOVIE_FEST (MOVIEID,FESTIVALID) VALUES (?,?)
* SELECT TITLE FROM MOVIE_FEST, MOVIE WHERE(MOVIE_FEST.FESTIVALID = ’#ID#’) AND (MOVIE_FEST.MOVIEID = MOVIE.MOVIEID)
* SELECT ID, COMMENT, USERID, DISLIKECOUNT, LIKECOUNT, ADDEDDATE FROM MOVIE_COMMENT JOIN COMMENT ON (MOVIE_COMMENT.COMMENTID = COMMENT.ID ) WHERE MOVIE_COMMENT.MOVIEID = #TYPEID#
All the functions have the try and catch mechanism. Reloading the sample database function is also on the Facadebase class.
2.2.2 Models
The Models are the classes for the objects that are created for the application. Models have all the functions relatedto the object (like get, set, add). All variables inside the models are private. The all models are created from abase model called “BaseModel”. This class has a Facade variable inside. The BaseModel allocates memory forthe facade.
The application has six derived classes from the base class which are “CategoryModel”, “CommentModel”, “Fes-tivalModel”, “MovieModel”, “PersonModel” and “UserModel”. All of these classes have their specific get andset methods for their specific variables (for example CategoryModel has two variables called ID and type. It alsohas their set and get functions).
2.2.3 Pages
The page classes are for the relation between the user and the database. They use “Form” classes to get theinformations from the user (actually from admins) and add these informations to the database. Since only adminsare authorized to do such adding, deleting and updating operations, it is okay to say that these classes for adminusage.
The page classes of the individual objects (like person, movie, category) has the constructors for the addingoperation. They create a form and according to the information that form holds, it adds it’s values to the database.An example of creating it is given below:
public AddFestivalPage(FestivalModel Festival, String ErrorMessage) {this.add(new AddFestivalForm("festival_form", Festival, ErrorMessage));
}
The given code block is using an “AddFestivalForm” class to add the festival to the database.
2.2.4 Utilities
These classes are for the admin panel, forms and links. There is a class called “Utility” which uses enums. Itkeeps Jobs and Roles inside with enum structure. They are set as given below in the Utilities class:
JOBSDirector(1), ActorActress(2), Producer(3), ScreenWriter(4), Unknown(5);
ROLESAdmin(1), Authorized(2), User(3), Unknown(4);
The class also contains get and set functions of the jobs and roles. There are 3 more utility classes:
Form
The form classes of the application derived from the java class “Form”. The forms are created by user input.Category, Person, Comment, Login and all the other pages which contains a form, have the form class created injava.
All form classes uses “AttributeAppender” class from the wicked. For example the “MovieForm” class adds theTitle, Year, Duration, Story and ImageURl with this order by appending them to the Model of the form, usingAttributeAppender. All information the form has should be added.
22 Chapter 2. Developer Guide
Cinephile Documentation, Release 1.0
public MovieForm(String ID, MovieModel Movie, String ErrorMessage) {super(ID);this.ErrorMessage = ErrorMessage;CompoundPropertyModel Model = new CompoundPropertyModel(Movie);super.add(new AttributeAppender("class", new Model("AddMovieForm"), " "));this.setModel(Model);this.add(new Label("Error", ErrorMessage));this.add(new TextField("Title").add(new AttributeAppender(
"placeholder", new Model("Movie Title"), "")));this.add(new TextField("Year").add(new AttributeAppender("placeholder",
new Model("Movie Year"), "")));this.add(new TextField("Duration").add(new AttributeAppender(
"placeholder", new Model("Movie Duration"), "")));this.add(new TextArea("Story").add(new AttributeAppender("placeholder",
new Model("Movie Story"), "")));this.add(new TextField("CoverImage").add(new AttributeAppender(
"placeholder", new Model("Image Url "), "")));if (ErrorMessage.length() > 0) {
this.add(new Behavior() {@Overridepublic void renderHead(Component component,
IHeaderResponse response) {super.renderHead(component, response);response.render(JavaScriptHeaderItem
.forScript("window.onload = function(){ $(’#MovieTitle’).closest(’.Input’).find(’.ErrorMessage’).css(’display’,’block’);}",""));
}});
}}
When user presses the submit button on the application, the object is checked if there is any duplicates first (forexample, since two movies can not share the name and the year, they both checked). If there is no duplicates,then the corresponding update function is called accordingly. The example code for the movie should be selfexplanatory:
@Overridepublic void onSubmit() {
MovieModel movie = (MovieModel) this.getModelObject();Facade oFacade = new Facade();if (oFacade.getMovieFacade().CheckMovieDuplicates(movie.getTitle(), movie.getYear())) {
if (movie.getID() > 0) { //If it has an id greater than zero, since the default id is -1, it means it is already in the databaseoFacade.getMovieFacade().updateMovie(movie, null, 0, 0); //non-updated part shoul return null or zero
} else {movie = oFacade.getMovieFacade().insertMovie(movie);
}this.setResponsePage(new ConsoleListMovies());
} elsethis.setResponsePage(new AddMoviePage(movie, "There is a movie with a same name"));
}}
Link
The link classes are derived from wicked Link class. They used for creating a bookmarkable URL (or click-able). For this purpose, they use setResponsePage class. The code below shows how did it implemented forPersonMainPage:
2.2. Code 23
Cinephile Documentation, Release 1.0
public class PersonMainPageLink extends Link {public PersonMainPageLink(String ID) {
super(ID);}
@Overridepublic void onClick() {
this.setResponsePage(new PersonMainPage());
}}
Panel
Panels are derived from the Panel class of the wicked. These classes are for the admin panel, navigation panel,header panel and footer panel. Admin panel, consist of administiration links. The administirations links arecreated from the Links. The following code shows the admin console:
public class AdminConsole extends Panel {public AdminConsole(String ID) {
super(ID);this.add(new AddMoviePageLink("AddMovie"));this.add(new AddFestivalPageLink("AddFestival"));this.add(new ConsoleListFestivalLink("ConsoleListFestival"));this.add(new ConsoleListUserLink("ConsoleListUser"));this.add(new EditPersonLink("AddPerson"));this.add(new ConsoleListMovieLink("ConsoleListMovie"));this.add(new ConsoleListPersonLink("ConsoleListPerson"));this.add(new ConsoleListCategoryLink("ListCategory"));this.add(new EditCategoryLink("AddCategory"));this.add(new ReloadSampleDatabaseLink("ReloadSampleDatabase"));
}}
It uses Link classes to create clickable links for the corresponding pages. Header and Footer panels are similar butsince header panel has login and logout options, it has a few more lines of code from the footer. Header checks ifthere is any log in first, if there is, it adds the user name to the header; else it adds login button. It also containsthe navigation panel inisde. The code below shows how it is done:
public class HeaderPanel extends Panel {public HeaderPanel(String ID) {
super(ID);BaseModel base = new BaseModel();if (base.GetCurrentMember() == null) {
this.add(new UserLoginRegisterPanel("UserInfoPanel"));} else {
this.add(new UserLoginRegisterPanel("UserInfoPanel",(UserModel) base.GetCurrentMember()));
}this.add(new NavigationPanel("mainNavigation"));super.add(new AttributeAppender("id", new Model("Header"), " "));
}}
public class FooterPanel extends Panel {public FooterPanel(String ID) {
super(ID);super.add(new AttributeAppender("id", new Model("Footer"), " "));
}}
24 Chapter 2. Developer Guide
Cinephile Documentation, Release 1.0
As for the navigation panel, it has the remaining Links from the admin panel which are the links for HomePage,MovieMainPage, PersonMainPage etc. They are first created as an object and then added to the navigation class:
public class NavigationPanel extends Panel {public NavigationPanel(String ID) {
super(ID);MovieMainPageLink MovieMainPageLink = new MovieMainPageLink("movies");FestivalMainPageLink FestivalMainPageLink = new FestivalMainPageLink(
"Festivals");HomePageLink HomePageLink = new HomePageLink("home");ContactPageLink ContactPageLink = new ContactPageLink("contact");FAQPageLink FAQPageLink = new FAQPageLink("faq");PersonMainPageLink PersonMainPageLink = new PersonMainPageLink(
"persons");this.add(HomePageLink);this.add(MovieMainPageLink);this.add(FestivalMainPageLink);this.add(ContactPageLink);this.add(FAQPageLink);this.add(PersonMainPageLink);
}
}
explain the technical structure of your code
to include a code listing, use the following example
2.3 Group Members
2.3.1 Parts Implemented by Talha Çolakoglu
1. Movie classes
• ConsoleListMovies.java
• AddMoviePage.java
• MovieMainPage.java
• MoviePage.java
• ScreenWriterToMoviePage.java
2. API classes
• CategoryFacade.java
• MovieFacade.java
3. Utility classes
• MovieForm.java
• AddMoviePageLink.java
• ConsoleListMovieLink.java
• MovieMainPageLink.java
• MoviePageLink.java
• CategoryForm.java
• ConsoleListCategory.java
2.3. Group Members 25
Cinephile Documentation, Release 1.0
2.3.2 Parts Implemented by Sinasi Eren Senel
1. User classes
• ConsoleListUser.java
• LoginPage.java
• RegisterPage.java
• UpdateUserPage.java
• UserPage.java
• ChangePasswordPage.java
• MasterPage.java
• BaseModel.java
2. API clases
• Facade.java
• CommentFacade.java
• UserFacade.java
3. Utility classes
• Utility.java
• HeaderPanel.java
• UserInfoPanel.java
• RegisterForm.java
• UpdateUserForm.java
• LoginForm.java
• ChangePasswordForm.java
• ChangePasswordPageLink.java
• ConsoleListUserLink.java
• DeleteUserLink.java
• LoginPageLink.java
• LogoutLink.java
• RegisterPageLink.java
• UpdateUserLink.java
• UserPageLink.java
2.3.3 Parts Implemented by Selin Sezer
1. Festival classes
• AddFestivalPage.java
• FestivalMainPage.java
• FestivalPage.java
• ConsoleListFestivals.java
• ContactPage.java
26 Chapter 2. Developer Guide
Cinephile Documentation, Release 1.0
• AdminConsole.java
2. API classes
• FestivalFacade.java
3. Utility classes
• AddFestivalForm.java
• AddFestivalPageLink.java
• ConsoleListFestivalLink.java
• PersonToMovieForm.java
• ContactPageLink.java
• FestivalMainPageLink.java
• FestivalPageLink.java
• ReloadSampleDatabase.java
• FooterPanel.java
2.3.4 Parts Implemented by M.Sadık Ugursoy
1. Person classes
• PersonModel.java
2. FAQ classes
• FAQPage.java
3. Utility classes
• NavigationPanel.java
• PersonForm.java
• PersonToMovieForm.java
• CommentForm.java
• ScreenWriterToMovieForm.java
• ConsoleListPersonLink.java
• EditPersonLink.java
• HomePageLink.java
2.3.5 Parts Implemented by A.Cihan Ak
1. Person classes
• PersonMainPage.java
• EditPersonPage.java
• PersonPage.java
• ConsoleListPerson.java
2. API classes
• PersonFacade.java
3. FAQ classes
2.3. Group Members 27