logo
  • Home
  • About Me
  • Skills
  • Portfolio
  • Contact

Zack Otterstrom

Software Engineer / Web Designer

Recent Computer Science Graduate with a Passion for Building Things

About Me

As a recent graduate in Computer Science from Weber State University, I have developed a strong foundation in software engineering principles. My academic journey has been marked by hands-on experience in a variety of technical areas through comprehensive class projects. I am detail-oriented, analytical, and have a keen interest in applying my skills to practical challenges in the field of software development. *I am in the process of publishing other projects that are currently in development

My Skills & Expertise

  • Software Development Lifecycle
  • Agile Frameworks
  • Typescript
  • Javascript
  • Angular
  • Web Design
  • AWS Elastic Beanstalk
  • AWS RDS
  • AWS S3
  • Docker
  • Node.js
  • Python
  • Java
  • Android App Development
  • Django Server Side
  • Express.js
  • React
  • CSS
  • MERN
  • MEAN
  • RESTful API
  • PostgreSQL
  • SQL

Portfolio - My Projects see link to GitHub to view code packages

Angular & Django Projects (FULL-STACK)

Lease Manager

Project 3 GIF

Description:

I am currently developing a dynamic website aimed at assisting a client with the management of RV/Boat storage lot leases and payments. This multifaceted application offers dual access points:(SSR is present, but has no links)

  • Server-Side Rendered (SSR) Pages: Using Django, which, while functional, are pending further styling enhancements. (No links to access)
  • Angular-based Client-Side Application: Communicates through APIs for a more interactive experience.

Security and Authentication

A key feature of the Angular client-side application is its robust security framework. It leverages AuthGuard in conjunction with the Django API framework and JavaScript Web Tokens (JWT) for user authentication. Upon successful login, a token is issued to the user. This token is crucial as it not only verifies the user’s identity but also facilitates API requests by enforcing user-specific permissions, ensuring a secure and personalized user experience.

Beta Deployment

The Django backend it connected to a PostgreSQL database hosted on AWS RDS. User files such as lease documents an lot images are stored in AWS S3 buckets with there location url stored in the SQL and permission is controlled by Django. Both the Angular front-end and Django back-end applications are deployed as a docker multi-container using nginx as a reverse proxy to handle communication between the two in an AWS Elastic Beanstalk enviroment. Being that this the portfolio version, it does not have a domain and is running in a single instance without a AWS load balancer, it is not utilizing HTTPS (SSL), When deployed in production for the client it will be SSL in addition to a few other sercurity measures.

This project is evolving, and continuous improvements are being made to both enhance the user interface and strengthen the security aspects of the application.

Angular

code snippet

Django

code snippet Django

UML Diagrams

Authentication UML

authentication UML

Dashboard UML

dashboard UML

check it out

try it out

username: admin, password: admin

Portfolio

Project 3 GIF

Description:

This project, currently a work in progress, originated as a final project for two classes:

  • CS 3620: Server-side web development using Python with the Django framework.
  • CS 3650: Computer/human interaction.

Django Backend Implementation

The Django side of the project utilizes multiple SQL databases, catering to user accounts with authentication features and portfolio artifacts. The server employs server-side rendered pages for site maintenance, specifically CRUD (Create, Read, Update, Delete) operations. This is achieved using Django's serializers, views, and templates.

Angular Frontend Development

For the frontend, I have focused on demonstrating UI design principles and have chosen Angular for this purpose. Angular efficiently fetches data from the backend server using Restful API calls, ensuring seamless integration between the frontend and backend components of the project.

Angular

code snippet Angular

Django

code snippet Django

SQL Angular Express Node (SEAN)(FULL-STACK)

Time Tracker

Project 3 GIF

Description:

This project, a collaborative effort undertaken as our University Capstone project, was inherited from a team that developed it in the previous semester. The project integrates Angular for the front-end and Node.js with Express for the back-end, with RESTful APIs facilitating communication between the two. My contributions involved enhancing the codebase by improving clarity, functionality, and rectifying existing bugs. The following is a summary of my specific contributions, completed independently but in harmony with the work of others.

One of my notable contributions is the development of a feature that enables students to request enrollment in a course. This functionality extends to notifying instructors of such requests, empowering them to approve or deny them. Upon approval, the student is officially enrolled in the course. Additionally, this feature includes the option for students to withdraw their requests at any stage.

request to join course request sent approve or deny

Angular

code snippet

Node, Express and SQL

code snippet

Register UML

Register UML

I developed the Evaluation functionality, allowing the instructor to create evaluation containing either text responses or ratings. Each instructor is able to save groups of questions as templates for future use. These questions can be edited.

eval components

Angular

code snippet

Node and Express

code snippet

Eval UML

Eval UML

*NOTE: I realize that much of this code doesn't follow best practices, improving this was outside of the scope of our project.

Android Development (Java)

Z-Recipies

Project 1 GIF

Description:

This project was developed as my final assignment for the course CS 3270 - Mobile Development for Android. The application is designed to fetch recipe information using an API call from a third-party provider. It features a local SQL database, implemented with Entity, for temporarily storing the search results. This application has the distinction of being published on Google Play. Future development plans include enhancing the app’s utility by introducing features such as searching recipes by name and enabling users to create their own recipe cards.

code snippet

BMI Calculator

Project 2 GIF

Description:

This is a project from CS 3270, this one is used to calculate the BMI score.

code snippet

Mongo Express React Node (MERN)(Full-Stack)

MERN Grid Word Finder

Project 2 GIF

Description:

The core of this assignment was developing a Grid Word Finder Game, as detailed in the README on our GitHub repository. This was a collaborative group project where user authentication and game logic were centrally managed on the server. We utilized sessions for user authentication, leveraging the capabilities of the Mongo sessions server.

mongo mongo

MERN Guessing Game

Project 2 GIF

Description:

This project formed a part of our coursework for the 3750 Software Engineering II class. To effectively execute this assignment, it's necessary to set up a MongoDB database. After the database is in place, the next crucial step is to update the .env file with the appropriate MongoDB connection string. This setup is vital for the assignment's functionality and integration with the database.

code snippet

Django Server Side Rendered with SQLite3 (SSR)

Site Scraper

scraper

Description:

This project was developed as my final assignment for CS 3620, focusing on server-side web development using Python with the Django framework. The application is designed to scrape and retrieve all links from any given URL, showcasing the powerful capabilities of Python and Django in web scraping and data extraction.

code snippet

Contact Me

Email: ZOTTERSTROM@GMAIL.COM

LinkedIn: https://www.linkedin.com/in/zack-otterstrom-13092964