Project 2 Framework fundamentals
Summary
For this project you will create a basic input-processing web application using Laravel.
The input will come from your user via a form that has at least 3 unique inputs, and upon submission, some output should be produced relevant to that input.
Below are wireframes for example concepts to give you an idea of the scope of application you should create.
(click wireframe for larger view)
And here are a few example projects created by students in previous semesters:
You may not use any of these wireframes or examples as your own project concept.
Requirement details
- Inputs
- 3 is the minimum amount of inputs, but you can have more.
- 3 of the inputs should be unique (i.e. a text input, textarea, and checkbox would be acceptable, but two text inputs and a drop-down select would not be).
- The inputs should collect data from the user, thus a button does not count as input.
- Data from your forms should be validated server-side using Laravel’s validation functionality to avoid unexpected output. To make it easy to check your server-side validation, HTML and JavaScript validation should not be used.
- Upon validation failure, the form inputs should be pre-filled with the problematic data.
- Views should utilize template inheritance
- Given the scale of the project, 1 controller should be sufficient. However, more controllers can be used as needed.
Setup
- Build your project in your e15 repository under a subdirectory called p2.
- Your project must be accessible on your server following the URL convention of http://e15p2.yourdomain.com.
- Your project must be set up to run as an independent application with its own document root; it must not run as a subdirectory.
Submissions
This project will be submitted/due with your Week 7 assignment (due Tue Mar 21 11:59pm). In that assignment I will have prompts asking you for your submission URLs (Server URL, Github repo URL, URL of last commit).
All final commits should be made before you submit your Week 7 assignment. Small commits made after the assignment deadline (e.g. a small bug fix, a typo correction, etc.) will be considered when grading, but any notable commits will not.
README.md
- Your project must include a README.md file using this template...
- Put your README.md file in the p2 application root (i.e. /e15/p2/README.md)
- Use proper Markdown syntax.
- All links must be clickable.
- For outside resources, do not include course notes or examples, but do include any/all of the following:
- External blogs/tutorials/books
- Specific forum posts (e.g. StackOverflow)
- ChatGPT searches (you do not have to include the answers, only the searches)
- Sources for images that you did not create
- Outside resources such as CSS frameworks, Google fonts, etc.
- Anything else (if in doubt, cite!)
Code
- Use modern and semantic HTML. CSS is optional but a minimal amount of CSS is suggested to present a clear and clean interface.
- Code should be organized and easy to follow.
- Code should be accurately indented with consistent spacing, styling, and syntax.
- Any non-obvious lines of code should be commented.
- Any extraneous code (including old, commented-out code) should be removed before submission.
- Code should follow all best practices discussed in lecture/notes.
Getting help
You are allowed/encouraged to post questions about this project/your code in the forum. You are also allowed/encouraged to utilize the PHP documentation, Google, StackOverflow, etc. to assist with project development/troubleshooting.
Be sure to read the course policy on original work and academic integrity to make sure you are responsibly using outside resources and getting the most out of this project.
Misc
It is expected that projects will follow all best practices discussed in lecture/notes, even if they are not explicitly mentioned in the specifications above. Failure to do so may result in point deductions.