Design and implement a Photo Album using PHP and HTML / CSS / JavaScript. Your project must meet all the requirements listed below.
Requirements:
-
Use PHP – the major part of your work should be PHP written by your team o You must additionally use HTML5, CSS3 to create the content and to stylize your web application o You may optionally use JavaScript, jQuery o You may optionally use PHP frameworks to simplify your work o User PHP 5
-
Work in team – all team members should contribute o Use GitHub or other source control system as project collaboration platform o Each team member should have commits in 5 different days
-
Publish your project live in Internet – your project should be public in Internet o You may share your project to get external feedback o Most shared and commented projects will get additional bonus score
-
Valid and high-quality PHP, HTML and CSS o Follow the best practices fr PHP development: http://www.phptherightway.com. o Validate (when possible) your HTML (http://validator.w3.org) and CSS code (http://css-validator.org) o Follow the best practices for high-quality PHP, HTML and CSS: good formatting, good code structure, consistent naming etc.
-
Usability, UX and browser support o Your web application should be easy-to-use, with intuitive UI, with good usability o Ensure your web application works correctly in the latest HTML5-compatible browsers: Chrome, Firefox, IE, Opera, Safari (latest versions, desktop and mobile versions) o You do not need to support old browsers like IE9
Forbidden Techniques and Tools:
- Using CMS / blog systems (like WordPress, Drupal and Joomla), forum systems (like phpBB), photo album systems (like Plogger) and audio album systems (like kPlaylist) is forbidden.
Photo Album Required functionalities:
-
View all albums / categories (optionally with paging). Browse album photos.
-
Creating new album in a category.
-
Uploading photos (validating pictures size and type) / downloading photos.
-
Adding comments to photos and albums.
Implement album's ranking system (e.g. vote from 1 to 10 or like / dislike).
-
Show the most highly ranked albums in a special section at the main page.
Optional functionalities:
-
Use a database (like MySQL or MongoDB) or cloud-based data storage (like MongoLab and RedisLab).
-
Implement user registration.
-
Functionality for searching by album name / category.
-
Admin panel (if registration is implemented): add / edit /delete albums, photos, comments.