Project 1 Workflow setup + PHP foundation
Summary
For this first project you will create a basic string-processing application.
Example: e15p1.hesweb.dev
The goal of this project is to:
- demonstrate that you have successfully set up the development workflow we’ll use this semester
- demonstrate your ability to apply your programming knowledge in the context of PHP
Note: Consider this first project a “warm-up” for the semester. For Projects 2 and 3 you’ll have the opportunity to build an application with greater utility/creativity.
String processors
1. (Required) Is palindrome?
Indicates whether the input string is an alphabetic palindrome (letters same forwards and backwards). Case insensitive. Non-alphabetic characters are ignored.
Example strings and results:
"racecar" => Yes
"Racecar" => Yes
"racecar!" => Yes
"!racecar!" => Yes
"Hello World" => No
"!!" => No
"!@#$" => No
2. (Required) Vowel count
Indicates a count of how many vowels (aeiou
) are in the input string. Case insensitive.
Example strings and results:
"the quick brown fox jumps over the lazy dog" => 11
"Hll Wrld" => 0
"AeIoU" => 5
3. (Optional) Letter shift
Processes an input string such that each letter is shifted +1 position in the alphabet.
So a
becomes b
, b
becomes c
, [...], z
becomes a
.
Capitalization should be retained so A
becomes B
, B
becomes C
, [...], Z
becomes A
.
Any non-alphabetic characters should be left as is.
Example strings and results:
"The zoo is open" => "Uif app jt pqfo"
"foobar@1" => "gppcbs@1"
"aAb" => "bBc"
4. (Optional) Create your own...
Design one additional processor that is similar in concept to the above tasks in that it provides some calculation and/or takes some input and produces some altered result.
Setup
- Build your project in your e15 repository under a subdirectory called p1.
- Your project must be accessible on your server following the URL convention of http://e15p1.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 3 assignment (due Tue Feb 14 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 3 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 p1 application root (i.e. /e15/p1/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.