CSCI110
Spring Session 2014
Assignment 4
PHP application – Group project
16 marks
Aim
This assignment
Introduces group-based systems development.
Gives experience in simple “systems administration” tasks such as the installation and configuration of web-servers and database engines.
Provides experience in the creation of a Web-2 community style web site. Gives experience in PHP application packages such as wikis, blogs, and content
management systems.
As part of this assignment, you will need to deploy a number of software packages onto at least one of the computers owned by members of your group. The software packages are available for both Windows and Linux operating systems – you may use whichever platform is more convenient.
Objectives
On completion of this assignment, you will be able to:
Install an Apache/PHP/MySQL web-server system on either a Windows or Linux platform, along with associated MySQL tools.
Configure this web-server system.
Create users and schemas in MySQL as needed by various PHP applications. Install PHP applications such as:
MediaWiki or WordPress. Drupal
Configure a Wiki or blog site and utilize such a site for recording aspects of your own work on this collaborative group based application development task. Build a Web-2 community web-site using the Drupal CMS
Ov
A d
You “Illa cari on y The prog mem The two mov even Satu The long Tim mee the mov You erviewdemonstra
u have to cr awarra Film icature of th your own co e Illawarra grammes o mbers to sha e society “o o or three sc vie that wa nings are fo urday aftern e core mem g evenings i me has lead et personall creation of vies. u will create Installing a Configuring authorized Creating tax Defining ne for an actor Defining a standard Dration Dru
eate a Drup m Society” hem – no o omputer. Film Socie f film pres are and exp owns” a sma creenings ea as relatively or themed s noon session mbers of the in pubs and to their di ly on a regu f a “virtual e this “Illaw a Drupal site g user recor member, re xonomies – ew Drupal r r, a record f date stampe rupal calendupal-based
pal-based W (apologies ffence inten ety wants a sentations w and their kn all, old cine ach week. O y recently o series such ns are often e society w d coffee hou ispersal and ular basis. coffee hou warra Film S e within you rds and thei eviewer, com – e.g. Genre records (mo for a review ed Drupal n dar view.d web site
Web-2 web-s to any real nded). This site that c while provi nowledge o ema and use On Wednes on in one “Spaghetti n held to sho were at univ uses discuss d to other c They hope use” where Society” site ur web-serv ir privileges mmittee-me e – with valu odified Nod w, etc. node – “Scree – “Illaw
site for an im l society th s web-site h can be used ding many f movies. es it for mo day evening of the mai Westerns”, ow family m versity togetsing the late commitmen e that Web they can re e by: ver’s www d s; you will n ember, etc.
ues for diffe es), e.g. a re eening” – th
warra Film
maginary fil at may thin has to run o d to publicis more facil ovie screeni gs, the socie in cinema c , “Space”, o movies. ther and fo est and the gts and they 2 technolog esume their directory. need differen erent kinds o ecord for a m hat will be d
m Society”
lm society – nk that this on a web-se se their cur lities for gr ings. There ety shows s circuits; Fr or “Film N ondly remem greatest mov y can no lo gies will pe r discussionent user role of movie. movie, a re displayed in
”
– the is a erver rrent roup e are some riday oir”; mber vies. nger ermit ns of es - cord n a Creating Forums and polls.
Adding menu items that will provide access to the data such as collections of reviews
Populating the site with sufficient plausible data so that you can create a convincing user guide.
Use of supporting technologies – MediaWiki or WordPress
In addition, you are required to make some limited use (maybe just token use) of either a Wiki or blog system that you also install (possibly on a different machine). This part of the assignment is intended just to give you a little practice in the use of such tools. You will find them helpful when you have to work on larger group projects with longer time scales. Students often find it difficult to schedule group meetings, and so find it necessary to interact indirectly via blogs etc.
You could use a Wiki to record information that you learn about aspects of Drupal configuration. You could use a blog to discuss particular problems that you are encountering in creating your site.
Reporting on your work
Your group will be assessed on a report that you submit and a presentation of your site in the laboratory class in Week 13.
Your report will include the following main sections:
A “User Manual” for the “Illawarra Film Society Web Site” – this should explain the options that are available to authenticated members, and to those members in more privileged roles.
A “Technical Details” section A “Group Work Report” section User Manual
The “user manual” section of your report is little more than an organized series of screen shots covering different aspects of site usage – use by visitors, by members, and by privileged members (e.g. the committee members). You would need an index and then a titled subsection for each aspect.
The first subsection will cover how anonymous visitors can see the site – they should be able to view the calendar with its details of scheduled movie presentations, the film reviews written by members, and the data pages contributed by members – these pages contain details of movies, producers and directors, and actors. For each different kind of use by a visitor there would be a group of screen shots; these should show how the visitor navigates to view the pages along with some sample pages.
Visitors can also complete applications for membership – such applications would require approval from the web-site’s admin (actually, admin allocated this responsibility to committee members).
The second section in the “user manual” part of your report covers site use by authorized members. Authorized members can, of course, add comments to any published material that permits comments. But authorized members are also expected to contribute to the society’s data base of movie information. Authorized members can create “movie”, “producer/director”, and “actor” pages. Authorized members can participate in the on-site forums and polls. Then there are the more privileged classes – “reviewers”, “content managers”, and “committee members”. Each class has increased privileges; all the privileges of lesser classes and some extras. Reviewers can create reviews. Content managers can create polls and “containers” for forums. Only committee members can create records for scheduled movie presentations.
Technical Details
In addition to the “User Manual for the Illawarra Film Society Site”, your report will have a Technical Details section with subsections covering:
Installation of your Apache/PHP/MySQL web-server system.
A summary of the tables that Drupal has created and populated in your MySQL database (screen-shot from MySQL Admin).
Details of the non-core Drupal modules that you added to your system. Some evidence for use of your Wiki or blog.
A list of the Drupal elements that you created – Taxonomy – vocabulary, use
New “Content Types” for Nodes Forums
Views
Most of these sections will comprise little more than a titled screen shot – e.g. a shot of the contents of your sites/all/modules subdirectory that shows all the extra modules that you had to add to your Drupal installation.
Group work report This section should
Identify the group members, their responsibilities and contributions. Contain “planned” and “actual” schedules.
Include brief summaries of the issues discussed in each group meeting.
Dividing work among your members
The work of creating the web-site has to be divided among your group members. Different skills are required.
Someone has to have some “systems administration” skills and interests. He or she will be responsible for installing the software, and acting as the MySQL “root” user and the admin for the Drupal and wiki/blog sites.
You don’t want three “sys admin” types fighting over the right to do that work; because you also need someone who will be good at tasks such as researching the specific additional modules that are required, sorting out views, constructing forums etc.
One of your group members has to handle the overall management of the project. He or she must arrange you meetings, assign tasks, check that things are done, liaise where necessary with the subject coordinator, and take final responsibility for preparing your report. When creating the final report, the manager will mainly be collating data supplied by others.
Someone has to complete the detailed design of your Drupal node elements. There are some more suggestions later but your group must pick the exact data needed in various content types that you define, and the content of views.
Someone has to supply plausible content data. Your “user manual” will not impress its intended audience if filled with things like: “movie-1 – the greatest ever Western” (illustrated with a picture of Mickey Mouse). Find a web site on the Internet, e.g. http://www.imdb.com , and “steal” content from them. You only need half a dozen plausible records – examples for each of “review”, “movie details”, “actor”, etc. The rest of the content can be dummies – “lorem ipsum” placeholder text, etc – that get shown merely as a title in views etc. With just a tiny amount of real content you can create a convincing user manual.
Someone is going to have to create and collate all those screen shots and make them available to the “manager” who is preparing the final report.
You will need an initial group meeting where you share out these roles. Details
Group work
1. An initial group meeting (suggest you make it in the September break or thereabouts) where you discuss your understanding of the project.
Get some initial ideas for the Drupal features (core and extensions) that you might exploit.
Estimate the work involved and consider the division of responsibilities among group members.
Decide on whether a WordPress blog or a MediaWiki wiki should be used for support tasks.
2. Go to the Drupal site and review some of the examples of sites built with Drupal – get ideas for what you might do in your site.
Possibly also visit the “distributions” - these identify the extension modules that they incorporate and will give you some idea of the features that you might want in a commercial site, an advocacy site, etc.
Maybe one of your group members has a keen sense of aesthetics. He/she might wish to research “themes” that would allow a quite distinct visual interface for your site.
3. Some independent work. It would be best if each member could try to install Apache/PHP/MySQL + Drupal and then gain a little experience with defining users, new content types, and entering content.
Remember to record details of the installation process and take screen shots. You will need these later when constructing the report.
4. Second group meeting. Decide on the allocation of work and determine where the Web-2 web-site will be built. Try if possible to deploy the site on a machine that can be accessed by all group members working over the Internet. (The secondary content – blog/wiki – might be deployed on a different machine.)
Make sure that you can easily acquire some plausible content that can be used when composing a convincing “User Manual”.
Review specifications for content types etc and establish a common understanding.
Compose a schedule for the remaining work. 5. Collaborative work.
Build the content types, enter dummy data, test, find which bits aren’t right, fix, re-test. (If you find that you haven’t defined a content type quite right then it is likely that you will have to delete all the data that you entered with the incorrect definition and start again with the new definition – so don’t bother too much about the actual content during this development stage.)
Record group discussions via your blog site or wiki.
6. Third group meeting. Review progress, analyse need for specific views (selections of subsets of data), plan how to define those views in Drupal.
7. Collaborative work. Build the views and at the same time enter the small amount of genuine content data that will be needed.
Get screen shots.
8. Final meeting. Work together assembling the report from the materials that you have collected.
9. Rehearse the presentation. 10.Do the presentation. Drupal stuff
The following are suggestions based on my limited development of a site done while setting the assignment.
You can organise things differently.
Just keep in mind the objectives of this kind of site development. You are (at least in imagination) trying to build a prototype site for use by the members of this film group. So, you want to give them a range of options that are easy to build with Drupal and which should allow them to experiment with the creation of a Web-2 site. The more sophisticated, imaginative, (and pretty) your prototype is, the happier they will be. Once they have started to use the site, they will inevitably come back and ask for changes and extensions.
Drupal Taxonomy
Define at least one simple taxonomy – the movie genres (e.g. Action, Adventure, Animation, Art, Biography, Comedy, Crime, Documentary, Drama, Family, Fantasy, Film-Noir, History, Horror, Musical, Mystery, Romance, Sci-Fi, Thriller, War, Western). You might choose to create and use additional taxonomies. I wanted the movie genre taxonomy to make it easy for a visitor to identify all movies of a particular type.
Drupal User Profiles
In addition to the anonymous user (visitor) and authorized user roles that Drupal supplies, you will need to define the additional more privileged roles. Organize these as you see fit; I had “reviewer”, “content manager”, and “committee”, but you might chose a different partitioning of responsibilities.
Arrange permissions somewhat similar to those that I had: Visitor (Drupal’s anonymous user)
Can apply for membership.
Can view the calendar with forthcoming events, the reviews, and the movie data base pages with details of movies, actors, and
producers/directors.
Cannot add comments to anything.
Member (~Drupal’s default authorized user class) Can do anything that a visitor can do.
Can participate in forums. What forums? Well, you can decide. When you add Drupal’s forums module you will start with a “general
discussions” ‘container’. (Drupal has ‘containers’ for forums, each container can hold discussions on a number of topics.) I had the
beginnings of forums (containers) on “the worst movies ever”, and “the best movies”.
Can create records for movies (title, description, year, genre, one image), actors (name, biography, portrait), producers/directors (like actors, but no need for image).
Can add comments to those records that permit comments Reviewers
Can do what a member can, and in addition can create reviews Content Managers
Can do what a reviewer can, and in addition can create polls and “containers” for forums.
Committee member
Can do what a “Content Manager” can do, and in addition can create “Screening” content types (scheduled in calendar), and can act on requests for membership.
Drupal Content Types
These were the types I was experimenting with while I composed the assignment. You may want a different set.
About Us (Page)
This will probably be created by admin, but it should be editable by committee members. It’s a “Basic Page” with details of the film society. There should be a link to this page in the main menu.
You might want some other “Basic Pages” – e.g. contact details, list of committee members.
Movie, Actor, Director-Producer (Node)
These could be simple nodes with one or two extra fields – an image maybe, a genre tag maybe, or possibly a multi-valued “node-reference” field (e.g. all the movie records associated with a given director, or particular actor).
Review (Node)
Another slightly modified basic node. Screening
These are nodes with a datetime field. They are displayed in the calendar view. The title is the movie title, the “body” is a brief description (it might contain things like the P/PG/… movie rating, and maybe a stars rating etc). The datetime field would hold the date and time of the screening. You might possibly include a link to an actual “movie” record which would contain more detail.
Comments are not permitted on these records.
Only a user with the role “committee member” should be capable of creating, editing, and deleting such records.
Drupal Forums
The society members would like some on-line forums for discussions – create some. Drupal Views
You will need to provide some display of “movie”, “actor”, “producer/director” records etc – probably best to define some simple views and put links into one of the menus. Maybe these are just lists with “teasers” for all records of a given type; but maybe you want something more sophisticated like grouping of records maybe by author or in the case of movies by genre.
Drupal Navigation
You will need to add links in various menus so as to provide access to data held on site.
Submission
The group’s report should be converted to PDF format as the file A4.pdf. The group leader should submit the report electronically via the turnin system. For this assignment you submit your assignment via the command:
turnin -c csci110 -a 4 A4.pdf The due date is Wednesday October 29th.
Late submissions are not possible because this is the last date in session.
The program turnin only works when you are logged in to the main banshee undergraduate server machine. As in assignment 1, you must transfer your report to the banshee machine using some form of ftp. Then from an Ubuntu workstation in the lab, you must open a terminal session on the local machine, and then login to banshee via ssh and run the turnin program.
If the group members contributed equally to the work, the group leader should send an email to the subject coordinator with a title of the form “CSCI110; group xx – all contributed equally”. Otherwise, the group should submit a self assessment note identifying the relative contributions of members; this should be signed by all members. It should be handed to the subject coordinator at the last scheduled lecture. Marking
The assignment is worth 16 marks total. Overall appearance of report: 2 marks
Cover, index, proper sectioning, brief overview of the assignment (and don’t just cut and paste words from this specification), sections on the various report parts. The site – it has to be a convincing Web 2 community site: 2 marks.
“User guide”: 3 marks
Technical details and sophistication of solution: 3 marks Group work report: 4 marks