Skip to content

PHP-Project-TEAM-NOTRE-DAME/EasyPress

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

56 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

#Teamwork Project Assignment for the PHP Course @ SoftUni

Design and implement a Blog / Forum / Photo Album / Audio Album using PHP and HTML / CSS / JavaScript. Your project must meet all the requirements listed below.

##Requirements:

  1. Use PHP – the major part of your work should be PHP written by your team
  • You must additionally use HTML5, CSS3 to create the content and to stylize your web application
  • You may optionally use JavaScript, jQuery
  • You may optionally use PHP frameworks to simplify your work
  • User PHP 5
  1. Work in team – all team members should contribute
  • Use GitHub or other source control system as project collaboration platform
  • Each team member should have commits in 5 different days
  1. Publish your project live in Internet – your project should be public in Internet
  • You may share your project to get external feedback
  • Most shared and commented projects will get additional bonus score
  1. Valid and high-quality PHP, HTML and CSS
  1. Usability, UX and browser support
  • Your web application should be easy-to-use, with intuitive UI, with good usability
  • Ensure your web application works correctly in the latest HTML5-compatible browsers: Chrome, Firefox, IE, Opera, Safari (latest versions, desktop and mobile versions)
  • 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.

##Projects

Please choose one of the projects below.

###Blog

####Required functionalities:

  1. View all posts (optionally with paging).
  2. Adding new posts by the blog owner (after login or password protected). Each post must have tags.
  3. Adding comments for every post by visitors – each visitor must fill out his name, email (optionally) and comment text.
  4. Implement a sidebar holding a list of posts sorted by month / year / etc. and a list of the most popular tags.
  5. Counter of visits for each post.
  6. Functionality for searching by tags.

####Optional functionalities:

  1. Use a database (like MySQL or MongoDB) or cloud-based data storage (like MongoLab and RedisLab).
  2. User registration and user profiles.
  3. Admin panel: add / edit / delete posts, comments, tags, etc.

###Forum

####Required functionalities:

  1. View all questions / categories (optionally with paging).
  2. Implement a simple registration for forum users.
  3. Adding new question by the forum users. Each question must have tags and category.
  4. Implement categories for the forum questions.
  5. Adding answers to the questions by the forum visitors – each visitor must fill out his name, email (optionally) and comment text.
  6. Counter for visits for each question.

####Optional functionalities:

  1. Use a database (like MySQL or MongoDB) or cloud-based data storage (like MongoLab and RedisLab).
  2. Admin panel: add /edit /delete forum posts, tags, answers, categories.
  3. Functionality for searching by question, answer and tags.
  4. Implement ranking according to user activity.

###Photo Album

####Required functionalities:

  1. View all albums / categories (optionally with paging). Browse album photos.
  2. Creating new album in a category.
  3. Uploading photos (validating pictures size and type) / downloading photos.
  4. Adding comments to photos and albums.
  5. Implement album's ranking system (e.g. vote from 1 to 10 or like / dislike).
  6. Show the most highly ranked albums in a special section at the main page.

####Optional functionalities:

  1. Use a database (like MySQL or MongoDB) or cloud-based data storage (like MongoLab and RedisLab).
  2. Implement user registration.
  3. Functionality for searching by album name / category.
  4. Admin panel (if registration is implemented): add / edit /delete albums, photos, comments.

###Audio Album

#####Required functionalities:

  1. View all playlists / genres / songs (optionally with paging).
  2. Listening to songs online. Downloading songs.
  3. Creating new playlist.
  4. Uploading songs (validating file size and type).
  5. Adding comments to songs and playlists.
  6. Implement playlists' and songs' ranking system. Show the most highly ranked playlists in a special section at the main page.

####Optional functionalities:

  1. Use a database (like MySQL or MongoDB) or cloud-based data storage (like MongoLab and RedisLab).
  2. Implement user registration.
  3. Functionality for searching / filtering by playlist name / song name / genre.
  4. Admin panel (if registration is implemented): add / edit /delete songs, playlists, genres, comments.

##Deliverables

Put the following in a ZIP archive and submit it (each team member submits the same file):

  1. The complete source code of your project (PHP, HTML, CSS, images, scripts and other files).
  2. A presentation of your project (e.g. PowerPoint slides) of your project. It should provide the following information: o Project name and purpose – what you have created? o Team name, list of team members. o Contributions of each team member. o Technical description.
  3. Any other information (optionally).

##Public Project Defense

Each team will have to deliver a public defense of its work in front of the other students, trainers and assistants. Teams will have only 10 minutes for the following:

  1. Demonstrate the web application (very shortly).
  2. Show the source code and explain how it works.
  3. Explain how each team member has contributed: display the commit logs in the Source Control System you are using.
  4. Optionally you might prepare a presentation (3-4 slides).

Please be strict in timing! On the 10th minute you will be interrupted! It is good idea to leave the last 2 minutes for questions from the other students, trainers and assistants. Be well prepared for presenting maximum of your work for minimum time. Bring your own laptop. Test it preliminary with the multimedia projector. Open the project assets beforehand to save time.

##Assessment Criteria

  1. Functionality (all the required functionalities according to the type of project you choose) – 0…12
  2. Overview (HTML / CSS / Usability / UX) – 0…2
  3. Code quality (correct naming, code formatting, separation of concerns, etc.) – 0…3
  4. Teamwork* (GitHub used; each team member contributed in 5 different days; distribution of tasks) – 0…3
  5. Bonus (bonus point are given for implementing optional functionalities according to the type of project you choose) – 0..5
  • If not all team members have contributed to the project, this does not affect the Teamwork points.

##Give Feedback about Your Teammates

You will be invited to provide feedback about all your teammates, their attitude to this project, their technical skills, their team working skills, their contribution to the project, etc. The feedback is important part of the project evaluation so take it seriously and be honest.