David Knittel


David Knittel

David Knittel: An enthusiastic member of the coding community with a hunger for knowledge

About Me

  I am a Full-Stack Developer with a passion for creating user-friendly, functional tools that address real-world problems. I am proficient at using HTML, CSS, and Javascript to create complete dynamic web-pages with complex functionality and precise positioning. I am detail-oriented and well organized. These qualities helped me to succeed in earning both a Bachelor of Science in Mathematics and a Bachelor of Arts in chemistry in my four years at the University of Kansas. It is my lifelong passion for mathematics that drew me towards computer programming. I believe that writing code and practicing mathematics require very similar skill sets. My experience writing mathematical proofs gave me an understanding of the same logical structures that are used in programming. I am able to succeed in fast paced, team-driven environments. I can follow directions well, or take initiative where appropriate.

I was born and raised in Manhattan KS. I moved to Lawrence to attend KU and have stayed there ever since. My interests include all things related to math, science, and music. I enjoy coding because it, like math, involves the manipulation of precisely defined objects and rules. I am currently working to establish and sharpen my skills as a web developer. As I continue to build my knowledge of web-based development, I hope to also continue to expand my knowledge to include other areas of software development.

Projects

Timeclock

Timeclock screenshot
Timeclock is an original time tracking app that I built to cover my real life use case of tracking work time and provide some additional features not commonly available on similar existing apps. Includes user authentication with password hashing and secured routes to prevent unauthorized data access. Can track time for any number of jobs. Optionally can calculate earnings based upon pay settings for the job. All setting values can be changed over time. As many parameters as possible are made to be editable settings, so the default values can be used by most users for an easy experience, but users with specific use cases can still make all the adjustments necessary to get the exact behavior they are looking for.
My Role
Sole Developer
Note
There is no guest account for this app. A username and password are the only required account information, so a fresh account can be takes only a few seconds to create.

Book Search

Book Search screenshot
This app uses the Google Books API to allow users to search for books. Information and links for the books are displayed together. Users may save book information to the database. Books can be saved to the public list which is shared among all users or to the user's private list. Authentication is managed using the Passport.js Local Strategy. Passwords are hashed before being saved to the database. Authentication is verified each time a user attempts to access their data. A password reset link is generated upon a user's request and sent to the email address associated with the user's account.
My Role
Sole Developer
Note
Many of the features of this app can be used without an account. If you wish to create an account, you can do so with only a username and password. For these reasons, there is no guest account for this app.

Cerebellum

Cerebellum screenshot
A social network dedicated to the sharing and building of knowledge. Users can post ideas and article links, search for other users, and save posts to their personal Knowledge Base. Standard social media features such as commenting on posts, editing and deleting posts, and creating a profile with a profile picture are available.
My Role
Part of a three person team. I was responsible for user authentication with Passport, Express.js server setup, MongoDB setup, database models and controllers, API routes, and mobile responsiveness. I was also responsible for integrating Nodemailer, Vue Croppa, and the Meetup API into the project.
Unfortunately, there is no live demo for this app currently.

NPR News Scraper

News Scraper screenshot
When the user presses the scrape button, the app scrapes the NPR news site for article headlines, pictures, links, and summaries. If there are already articles in the database, the new article headlines are compared against the ones in the database to prevent duplicates and up to 8 new articles are saved in the database. The article information is displayed along with a link to the article and a comment section. The comment section is contained in a modal. The comments for the chosen article are retrieved from the database when the modal is opened.
My Role
Sole developer.

Food Fight RPG

Food Fight screenshot
Food Fight is an RPG game written with HTML, CSS, and Javascript. The jQuery Javascript library is used for DOM interaction. The player begins the game by selecting a character to play as. They must then battle their enemies one at a time. The player wins when they have defeated all the enemies and loses if their character is defeated. The player's character deals more damage with each attack, but the opponents' counter attack scores are not increased. The game can be both won and lost when playing as any given character.
My Role
Sole developer.
Technologies Used