Tuesday, May 14, 2019
Ficus Mini is a beta edition to Ficus, which is a gamified stock-trading app that uses fictitious money or real money to trade stocks. Unlike Ficus, Ficus Mini does not use real money. Each member starts out with $10,000 which they can use to trade and whatever amount they have equity will fluctuate with the current stock market.The purpose of the app is for users to get involved trading in the stock market and compete against other members in their group to see who comes out ahead on the leaderboard every week.
On March 2018, our team of four developers (including myself) met with Greg Carlson, the founder of Ficus, to go over wireframes and his vision for the app. We were able to create the MVP for Ficus in a 6 weeks sprint and launched it live in the iTunes Apple Store. Today, the app is different from the demo on my site, because it has been rebuilt by another team. I am proud of our original work and thankful that Greg allowed us to build the MVP for it.
This project was extremely challenging for a 6 weeks sprint, because none of us developers on the team have had any experience with React-Native, Redux Thunk and Xcode. We had to learn it quick and the first week was dedicated to us struggling and getting used to React-Native and Xcode. Our second challenge was that not everyone in our group was familiar with how stocks work (except for me and Erik) and how to do the calculations for the cost basis and gains. We needed that in order to rank users on the leaderboard, which is the entire purpose of the app.
As for my part in the producion, I set up the backend architecture using our ERD, connecting Loopback to our Mongo database. I created the login page, sign up page, activity component, and third party page. I also connected everything with Redux, qa for bugs, and fixed a good number of those bugs.
For the sign up page, I used axios to make requests to our express app to set up the user’s account and authenticate that user’s information on the front-end. For the log in page, I utilized Redux thunk to manage asynchronous view changes after authenticating the user, so (1) the user would log in, (2) we would authenticate their email and password, and then (3) redirect them to the home page. Since it was my first exposure to Redux thunk, understanding how to chain asynchronous actions in Redux was a challenge. After reaching out to my team members and instructors for help, I went back and tried to implement it myself and was finally successful, ultimately learning how to manage actions effectively.
In the end, we were able to pull it together and got the app live in the iTunes Apple Store. We were working 70 hours a week to meet our 6 weeks sprint. Good thing the four of us got along well. All that hard work was worth it when we were able to download the app to our phones and compete against our friends and family on the leaderboard.
Seize The Day (VSTDA) is a simple and easy to use to-do app that helps you organize your day and stay productive. Today's date is shown on the pencil to remind you which day it is. This app allows you to create tasks by priority. You can also edit your tasks, reset its priority, and delete your tasks. Mobile responsive and ready for use!
I built this project on my own and it was a struggle for me. I am a big fan of React and I have a number of React projects in my github, but out of all of those projects, I would say this one was the toughest for me. Getting the tasks to add and delete were easy, but getting it to edit and save were hard. It was confusing getting everything to connect, but I was able to get it done with occasional help from instructors and peers.
Dave's Depot is an online retail shop designed to emulate e-commerce stores like Amazon or Etsy. You can sign up as a buyer or seller with your own log in. If you are a buyer, you can browse sale items from the site, add to cart, and then checkout. You will have a dashboard of your buying history. If you are a seller, you can post your items to the website for others to buy. You will also have a dashboard of all your posted items. This website focuses on simplicity and is user friendly.
In this project, I worked with three other developers on a one week sprint. I was responsible for the Mock Data, Add Product Page, Product Listings Page, Add to Cart Page, and the Checkout Page.
One of the tickets I worked on was the Mock Data. I created a json file of all the listed products on the page along with the product’s name, description, price, condition, sale, category, and images. The information in the Mock Data then gets stored in Loopback under listing, which we later used to grab information to post on the page through an axios call.
I also worked on the Create Product Page where sellers can go in and add the items they would like to sell in details. I was able to capture a users input for the name, description, price, and images and store them in redux with little problems. My biggest blocker was handling edge cases and multiple conditions, category, and sale elements, because I had to conditionally render the state of the dropdown components for them. I was able to overcome my blocker by dispatching specific conditions using ternaries to the Redux store.
I like this project, because I feel like I have a decent grip on React/Redux and was able to get more familiar with Loopback, which is surprisingly straight forward. I really enjoyed working on this project due to the strong relationships I’ve gained with my colleague. We consistently helped one another when stuck.
Budget Tracker helps you track your bills and manage your finances. By putting in your income and expenses, you can calculate how much you will have remaining or how much you have in the negatives at the end of the month. Simple, easy to use, and mobile responsive.
I built this app on my own with help from instructors here and there. It was my first time building with Redux and trying to understand the structure of the framework. Once I got the grip of it, I like using Redux because it is easier to debug and fix coding errors. As for the styling, it is mostly bootstrap and very little CSS. I wanted to demonstrate my bootstrap skills through this project. Learning and using bootstrap was my favorite part of the the process, because I like how it cuts my styling time in half, especially when it comes to responsiveness.