Software Engineering (CPSC 430) Reflection

When reflecting on the Software Engineering (CPSC 430) course, I think the most importing thing I learned is how the software development process worked. I believe the most useful skills used in this project were my leadership and database skills. Throughout working on Gusty’s E-Commerce Bike Shop the most difficult problems I encounter was the lack of team motivation to work on the assignment as well as poor communication from some team members. At the end of this project, I discovered that I enjoy both front-end and back-end web development equally. This experience confirmed my passion to pursue the web development field. I also learned that I am able to manage a heavy workload and have more patience than I originally thought. Although I sadden that I am graduating this semester, I am glad I was able to take this course because I greatly benefited from the knowledge and believe I will use these skills in the work force.

Gusty’s E-Commerce Bike Shop Final Project

This was a semester long project created for a Software Engineering course. Our client, Professor Gusty Cooper, is a cycling enthusiast and has a dream of owning his own e-commerce website when he retires. Our goal was to create a functionally working e-commerce website, excluding the encryptions for personnel information and transactions. From this project I learned about the software development process and how to write software documentation. I also learned how to be a leader on the team and help team members complete their tasks. Lastly, if I were to re-do this project I would scale down the requirements to fit the time allotted, spend more time designing the project, and begin implementation earlier.

This project was locally hosted on Cloud9. The following are some images of the website.

Homepage
Item page
Cart page
Employee Timesheet page
Master Admin Create New Product Page

To download the project follow the instructions below.

  • Cloud9 Setup

Cloud9 (https://c9.io/) is required to locally host the website. The testing team must create or log into a Cloud9 account, and create a new workspace with a blank template. Once a workspace is created, the team will then clone the git repository in the Cloud9 terminal with the following command:

> git clone GitHub.com/qogden/Gustys-bike-shop

  • Database Setup

To set up the database, the team will run the following command prior to starting the server. These will install the necessary libraries to properly run the web application.

> sudo apt-get update

> sudo apt-get install python-psycopg2

> sudo apt-get install postgresql-contrib-9.3

> sudo easy_install flask markdown

> sudo easy_install flask-socketio

> sudo pip install flask-blogging

> sudo pip install sqlalchemy

The server can be started with the following commands:

> sudo service postgresql start

> sudo sudo -u postgres psql

Finally, the SQL file is loaded into PostgreSQL with the following command:

> \i Gustys-bike-shop/bikes.sql

  • Running the Application

The application can be started by opening the server.py file, and clicking the run button on the top of the page. Alternatively, it can be run from the command line using the following command:

> python server.py

A new tab will open with a URL link to where the website is running locally.

Gusty’s E-Commerce Bike Shop Company Memo

This company memo was created for a Software Engineering project. The purpose of the document was to inform the team of a potential way to implement the blog feature on the Gusty’s Bike Shop. The team suggested we attempt to implement the blog feature using WordPress and attach it to the blog page. This is not as easy as it may seem. I research how to load an offline version of WordPress onto Cloud9 but we then encountered the issue on how to connect WordPress to our server and database. From my research I should have determined this is not a probable implementation method.

Download the PDF file .

Gusty’s E-Commerce Bike Shop Prototype

This usability lab was created for a Software Engineering course. The purpose of the project was to create a user model through testing and prototype design. The goal was to create a “user-friendly” checkout feature. If I were to recreate the process over again I would choose the timesheet feature because we had difficulties determining the look of the page.

Download the PDF file .

Gusty’s E-Commerce Bike Shop Documentation

These documents were written for a Software Engineering course. The purpose was to learn how to document the software development process for Gusty’s Bike Shop E-Commerce Website. The requirements document documents requirements records the initial expectations of the e-commerce website. The project plan notes the schedule for the remainder of the project and scales down some requirements. The test plan document indicated the required procedures for the testing team to examine the initial features of the project. From this experience I learned how to specify and document exactly what is necessary to declare a project complete. If I were to repeat the process I would prioritized the requirements with our client, Professor Gusty Cooper, and estimate longer time periods for implementation.

Requirements Document

Download the PDF file .

Project Plan Document

Download the PDF file .

Test Plan Document

Download the PDF file .

 

 

Personal Assistant Watch Liaison (PAWL)

This prototype was created for a Human-Computer Interaction class. The purpose of the project was to learn the design process of creating a user-friendly product. My team decided to create a smart watch that integrated a hologram feature for better usability. For this assignment, I learned how to interview users to created a WAAD diagram and develop a user model. We also learned how to analyze the pilot testing results to adjust the prototype. If I were to repeat the process, I would also create a video or audio prototype for the hologram feature rather than using a person to represent the hologram.

Download the PDF file .

Feed-A-Friend Final Project

This was a semester long project for Applications of Databases. The idea behind the website was to create a place in which students with sufficient and insufficient meal swipes could find and help each other. The purpose of this project was to develop skills with database interactions and application development. The Bootstrap website was written using HTML, CSS, Angular JS, Flask-Python and PostgreSQL. On top of learning how to use a database, gaining experience with programming languages, and application development, I also learn team building skills. I learned how to communicate and motivate team members to finish the project at hand.

To view the program, git clone the project at Feed-A-Friend. Once cloned, run the server, and start/load the database.

 

iOS Calculator Application

The calculator application was created as a part of my iOS application development independent study course. The purpose of the course was to gain experience with application development, the iOS system, and the Swift language. While creating the calculator, I developed problem solving skill and learned about user interfaces. If I were to re-do this application, I would organize the requirements and design the application prior to writing any code. The following is a video and source code of the application.

Download the PDF file .