Moxie Fitness
Android and web fitness application. Many features revolving around health and fitness, including: Creating custmoized exercises, workouts, sharing them, caloric counter calculatur, friends search, messaging, and quite a few other smaller comopnents.
Technologies
$ setup ——learned_skills
{
“Android”: Gathered a full in depth experience into understanding the android activity lifecycle, information storage on embedded devies and security constraints, hardware components (like accelerometer, step counter, etc.),
"AWS": Used many new technologies and services from AWS. Altough many of the services where in the prototyping development and were phased out, I still implemented: DynamoDB, S3, Cognito, IAM Authentication, Pinpoint, EC2, RDBS and others,
"Firebase": Firebase authenticatino for the application. As well as crash analytics for mobile applications, realtime database, firecloud store database and other firebase features.
"Laravel": Backend server logic and comminication between our server to database, and external APIs such as Braintree and Paypal.,
"nginx": Server,
"Others": Other minor technologies as well.
}
Details
This has been the largest project that I have worked on. While it initially begand as an invdividual project, it has evolved into a small team. We have developed a proccess for continous development and testing with before releases.
I have learned a lot about large project organization and design princinples to keep things organized and ensure modularity and reuseability. The project has been fully decomposed twice, to ensure that any prototype-like implementations are gone and that we are following a good design principle.
The last big component is the backend side of things, where I gained a great understanding of the Laravel MVC framework. We implemented a design that allows for no redudant data and eloquent relationships that are geared towards modularity and performance.
As far as roles go, there wasn't much structure like that on this project. However, I did do several informal classes as training for some of the other team members. I hadn't realized how much it really helps to understand things fully before teaching someone else.
Team Wallstreet
Android application to predict whether a stock will rise or drop on the next day. This was a team project for SE 329, Software Project Managment.
$ setup ——learned_skills
{
“Android”: First introduction into the android framework. What I learned from this, I was able to use in the Moxie Fitness project (below), which is a much more complex project.,
"HTTP": Understanding how HTTP requests work, and the many differences in doing requests and parsing the data, compared to how easily it's manupulated in browsers.,
"Machine Learning": Used a linear regression algorithm to predict the if the stock would rise or drop on the next day, with a 60% or higher accuracy.
}
Details
This project was my first drive into mobile development, as well as Project Management best pracices in developing with a team based approach in mind. This was a summer project, so there was little time to do anything like a Waterfall approach, we knew we had to develop quickly so a modified Agile based methology worked the best for us.
We set up different processes to manage our devleopment lifecyle. We had a process for continous development, testing, communication and integration.
For the purposes of this class, we had to alternate roles during this project. I think the most important one I held was Project Manager. It was the most challenging, to be able to coordinate work between a team and resolve design conflicts between members.
Galatic Empires
Web Application for a MMORTS style game. Similar to what something like Clash of Clans would be, but on the browser and no animations. This was a team project for the Com S 309, Software Development Practices cource.
Technologies
$ setup ——learned_skills
{
"Laravel": This was the first project that I worked with Laravel. I really enjoyed learning how to use this framework and have since used Laravel or Lumen (Laravel's compact API framework) for many test projects and for Moxie Fitness,
"Git": I learned how to use git in a team and how to manage constant resolution and develop a good process for working in a tem,
"MVC": This comes with using Laravel, but using what I learned from this MVC framework has helped me to understand the power of the MVC approach, especially for many static based type browser applications. I have also began used the .NET MVC framework thanks to what I learned from this project,
"ORM": This has been by far one of the best tools that I have. Since I began developing server side code, my SQL experience has greatly increased, but I will use a ORM framework or library any day vs a pure SQL based approach.
}
Details
More than anything, I learned to work in a team and about overcoming the challenges that come with it. We did not have any specific roles for this project, as it was our first team based development for everyone in the team. We all focused on learning new skills and tools.
In this project we used many Laravel's features to their full potentional. Taking advantage of it's powerful authentication system, we implemented roles and permissions, administrative layouts, and of course all of the fun game logic. We used an jobs driven approach to handle a lot of the real time aspects of the game. For some of the things that required an instant real time solution, we used Pusher to broadcast notifications, some public and others private depending on what the broadcast was for.