Goal
Student creates their own object oriented MVC project from requirements to release.
It can be a component(Like the A4) or an application that solves a problem for someone.
Rules
All projects must fulfill the minimum requirements.
Grade is set by the examiner by judging:
- Requirement fulfillment
- Code quality
- MVC implementation
- Presentation, on GitHub and Oral presentation
The set of minimum requirements for approved is:
- Solution has been submitted before the deadline
- Code should be available on a public git repository.
- The application must be deployed on a public web server, the server must be available to the examiner for the rest of the course.
- The Assignment is done individually! You are not allowed to copy or take solutions from others.
- No code is copied from others, student has worked alone
- No external code except the code given in task, no libraries are used
- No javascript is used
- HTML follows web standards
- Code has one single page (index.php)
- Your solution will/may be shared with other students after the deadline.
Requirement fulfillment
- Requirements are described in vision and Use-Cases
- Bigger Project -> better grade
- Complexity -> better grade
- Solves Users Problem -> better grade
- The project has tests and fulfills them
- The application is well tested even outside of the explicit tests
- Security is considered
Code Quality
- Code MUST be object oriented.
- Code looks good
- Good Understandable identifier naming
- Code is well commented and selfexplanatory
- Avoid arrays when dealing with something that is a class.
- Code follows proper indentation
- Errors are handled well (assert and exceptions)
- Code Repository is presented well on git (eg. README.md )
- Dependencies and described
- Installation instructions
- Dependencies are explicit or encapsulated
- No string dependencies, uses strategies to avoid them
- Avoid complexity
MVC implementation
- Code is separated into Model View Controller components
- No dependencies from Model to Controller or View
- No dependencies from View to Controller
- Only use $_GET, $_POST, $_COOKIES etc in View-classes
- No output generation in Model or Controller
- No View responsibilities in Model or Controller
- No Model responsibilities in View or Controller
- No Controller responsibilities in View or Model
Presentation
- An oral presentation has been done.
Assignment submission
Commit and push to GitHub
Upload latest version on public server
Fill in the submission form here: http://goo.gl/forms/pCInHNCx0R
Re-examination
The reexamination deadline will be Friday week 49. The project that are resubmitted should not only address issues mentioned in feedback but the full requirements of the project. I also want you to write a 5+ pages written story about how you fulfill projects requirement https://coursepress.lnu.se/kurs/webbutveckling-med-php/laborationsmiljo/projekt/. It should include information on how you have worked with use-cases, what kind of test-process you have used, how you have ensured that the code-quality of your work.
It should contain a discussion on the security of your project, threats and their mitigation strategy.
It should also contain a diagram of your code showing MVC components and their classes and the dependencies between them (including hidden dependencies).
The language should be Swedish or English and should be checked for writing and spelling errors.