Chris Schneider portrait

Hi, I'm Chris Schneider.

Software Development student.

Know the Place at Bruce Gallery

Know The Place

Plugging this Bruce Gallery show on campus, as a number of my sculptures are featured in it!

Homework 📝

Chapter 1: Individual Case Project

Chapter 2: Individual Case Project

Chapter 3: Hands-On

Chapter 3: Individual Case Project

Exam 1

Chapter 4: Individual Case Project

Chapter 5: Hands-On

Chapter 5: Individual Case Project

Chapter 6: Hands-On

Chapter 6: Individual Case Project

Chapter 7: Hands-On

Chapter 7: Individual Case Project

Chapter 8: Individual Case Project

Chapter 9: Hands-On

Chapter 10: Hands-On

Final Project

WebPaint 🎨

Fully-responsive "MS-Paint style" app to draw simple pictures.
You can draw, erase, and change the color and size of these tools with the UI or hotkeys.
The app also saves state history and allows undo/redoing actions as in MS Paint.

I started working on a Fill tool, but it's suprisingly complicated to get it right... My research found that nearest neighbor flood algorithms can take a long time to run (imagine clicking and waiting 6 seconds) and are affected by canvas anti-aliasing, scan lines are complicated (lots of edge cases), and recursive algorithms can overflow the DOM stack. Basically it would probably take longer to do this feature than the rest of the entire project combined, so no Fill bucket for the scope of this project!

WebPaint screenshot

Rubric Notes

[25] Completeness

Whether is does what you say it is going to do. I will also be grading the complexity here. For complexity I'll be looking that you implemented at least 3 of these:

  • Event Driven Programming
    • mousedown, mouseup, wheel, keyboard, click, load, resize
  • Use of the DOM
    • I'm not really sure how to not use the DOM...
  • Assignment element properties to arrays, & use of text strings
  • If appropriate validate any input of data
  • OOP / Custom objects
    • custom ToolBar, Canvas, Cursor classes
  • Share data, via URL, Web Storage API or Cookie
  • Some sort of event object as in Ch 10, like the drag and drop

[10] Correctness - That it does what you say correctly:

  • correct calculations and/or game play.
    • Pretty good!
  • Including that I cannot make it crash.
    • Good luck, have fun!
  • No errors
    • Looking good!

[8] Design

I'll look at originality of your project, the overall look and feel. This is a subjective grade. For example, I'd like to see:

  • Good colors
    • I think it's decent?
  • Layout
    • Fully responsive design
  • Playability/usability of your program
    • You sure can draw stuff!
  • Ease of navigating your page.
    • The hotkeys help!

[7] Style

  • Please add lots of documentation
    • I hope I added enough!
  • Clarity in your code
    • I think so!
  • Proper indentations
    • Always!

Contact 💬