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 a palindrome (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
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 production 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 Thu Feb 18 11:59pm). In that assignment I will have prompts asking you for your relevant project URLs (Github, production URL, etc.).
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) that provided information you utilized in your code
- 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.
Getting help
You are allowed to post questions about this project/your code in the forum. You are also allowed to utilize the PHP documentation, Google, StackOverflow, etc. to assist with project development/troubleshooting.
Be sure to read Policies: Original work and academic integrity to make sure you are responsibly using outside resources and getting the most out of this project.
Misc
- Follow any/all other best practices not explicitly mentioned above but discussed in lecture/notes.