Android Apps Projects

YourSeoul App:

Why I started: Without a doubt, this app has been my favorite app to build so far because it combines both my passion in listening to K-Pop music, and developing native Android apps! I was inspired to build this app around summer of 2017 when my friends who own a physical K-Pop store were thinking of increasing their online presence through e-commerce. Their problem was like a voice in my head that convinced me to build an app version of their store together with them in my spare time to improve customers’ shopping experiences through an app instead of visiting the physical store all the time. We wanted to empower K-Pop lovers like us by bringing them a step closer to getting their favorite albums and introduce to them a community of K-Pop lovers all through their phone.

Functionalities: Another reason why I love building this app because new ideas just kept popping up! Since the main idea of this app is about selling albums and other merchandise, I decided to try out “Shopify Mobile Buy SDK” for Android developers. First as a proof of concept before making my friends actually pay and register a Shopify store, I registered my own Shopify store as a developer and included various albums and posters. Then I integrated this SDK into my app which would connect to my Shopify store using GraphQL queries and responses. When user opens this app, it will land on the home-page that shows the Newest Arrival of albums and posters. Users can swipe left to see the “Catalogue” section where they can browse through all available merchandises. As well, this page has a bottom navigation bar where it allows user to browse all items, filter items, and sort by prices or by alphabet. All these UI-components are done through Fragment for each activities. For each item, user has the option to add the item to the shopping cart by clicking the cart icon of each item and this is done through an integration of SQL Database. All the items that are currently in the cart can be seen by clicking the top-right cart symbol. A new functionality that I just finished developing is a tab that shows upcoming “Events” of searched artists through the Ticketmaster API where user can browse and even buy upcoming concerts or events of their favorite artists.

 

This slideshow requires JavaScript.

Looking Back: The entire project process has been so rewarding because the thought that someone in the world, who is just as a huge KPop lover like me, would have big smiles on their faces when they are using my app has been my main energy source and motivation. My determination and passion has also pushed me to learn new and difficult UI-components and integrating companies’ APIs so that the app looks and functions the way that we envisioned.

Next Step: Although there has been some hiccups in developing this project, I’m going to continue developing this with the next steps being adding functionality where users can have their “wishlist” of products they may want to buy later. This might even require a login system which I might develop as well using Firebase Authentication to keep track of users’ purchases and store it in a cloud environment rather than locally on SQL database.

FriendZone Social App:

Why I started: This app was created with my teammates in Hack the Valley Hackathon on Jan. 2017. We decided to make this app to achieve the purpose of promoting face-to-face social interaction focusing on completing one’s bucket-list goals. After a long time of idea discussion, we felt that university has been compressing our free time to achieve our bucket-list goals, and it is often very hard to find someone who has and wants to achieve these goals with you.

That’s why we decided to build an app that lets users sign-in into our app or sign-in thru their Facebook account, and start to connect with other users who are also using this app. Once the user login-in, the user can create their own bucket-list, and the app will find nearby events suitable for these goals. The user can add each event onto their Google Calendar. Users can also add friends and the app will populate a list of shared bucket-list goals. Finally, the app lets you message each other to meet-up and execute the event in real-life.

Functionalities: For this app, I integrated Firebase’s Real-Time Database to save the user’s information when they sign up for an account on this app. I also used Firebase’s Authentication to ensure that the user is providing the correct email and password upon sign-in. On top of that, we believe it’s important to integrate a popular social media platform, hence I’ve used Facebook’s API and integrated Facebook Login for users to login and see their mutual friends with other users of this app.

 

 

This slideshow requires JavaScript.

Food Decision App:

Why I started: I was inspired to make this app when my and my friends always struggle to decide what food and which restaurant we should eat. I decided to make an app that would choose a food style randomly and uses Yelp’s RESTful API to suggest the best rated restaurants for the chosen food style to the user. I also integrated Google Location API to track the user’s current location to provide the closest restaurant.

Functionalities: The main screen of this app shows the available food categories, and once the user presses the button, it will randomly choose a food category and lists 3 best rated and closest restaurants.User can also save a restaurant for future references by clicking on the image of the restaurant, and that restaurant’s name will be saved in the SQL Database. If the user click the bottom button, it will take the user to the next screen where the database can be viewed.

 

 

This slideshow requires JavaScript.

GPA Success: 

Why I started: A student-friendly app that lets students calculate and save their calculated GPA into a database whenever and wherever they are. I was inspired to make this app when I was commuting to home on the subway during the exam season, and I wished there would be an app that I can use without Wifi to calculate my GPA. This app is very meaningful as it was my first self-taught Android App and my first step into the mobile app development field.

 

 

This slideshow requires JavaScript.

*For more information on any of the projects listed above, feel free to visit my Github page or contact me!

 

Awards & Leadership Experience

Here is a slide showing the list of awards I received over the last 4 years.

 

This slideshow requires JavaScript.

Leadership Experiences:

  1. You’re Next Career Network in university, event organizer for 2 flagship events that hosted more than 200 students and 100 mentors
  2. Air Cadets (See more in my post in “Life Events”)
  3. Free the Children in my school (Secretary position)
  4. Ontario Student Against Impaired Driving (OSAID) (Secretary position)
  5. Peer Mentorship guiding Grade 9 students

Places I have Volunteered at:

  1. Pan Am Games 2015
  2. Markham Museum
  3. Markham Stouffville Hospital
  4. Markham Rib-Fest
  5. Main Street Unionville

 

 

This slideshow requires JavaScript.

Mapping Software Project 2018

Background about Our Project:

ECE297 map 1
Overview of Toronto from our mapping software

From January till April 2018, I had to pleasure to work with 2 other very talented friends on a large scale mapping software coded in C++ for a course. We hoped one day our software can efficiently find the optimized route for delivering medical supplies for outbreaks in rural areas such as Ebola. However given the time and the learning curve, we were only able to develop a city-map prototype that helps the package delivery-person find routes, intersections, and points of interests in the city as efficiently as possible. Though this project was assigned to us, I learned so many transferable skills in terms of data structures & complex algorithms (Dijkstra, A*), team collaboration, overall good coding practices, and pitching our solution.

Goals:

Besides hoping for a 4.0 in this course, we also wanted to set standard goals for ourselves to grow as software engineers and ultimately achieve our hope to contribute towards helping Ebola patients. In turn, we split our project and energy into aiming for 2 areas, usability and responsiveness because we believe those are the key qualities in all the scale-able and customer-obsessed  software that we use everyday.

Usability: Since our target user is a delivery person, usability means satisfying his/her goal of delivering all the packages to the correct corresponding location within his assigned time. 

Responsiveness: Aimed at the fastest performance possible for all actions in our software

Functionalities & Demo:

Auto-completing Searching of Intersections:

We implemented this feature hoping to save user’s time when typing out street names and make our map more user-friendly. This is a functionality where when user clicks on an item in the menu, we prompt the user to enter street names of an intersection. While they are entering the name, if user doesn’t remember what type of road this street is (avenue, road, blvd, e.g.), then we can autocomplete this part of the street name. This was implemented using a trie-tree data structure to piece out the word together.

Video Demo

Dynamic appearance of Points of Interests when Zooming:

To improve further of the usability of our map, we wanted the amount of Points of Interests (POI), such as restaurants, attractions, and banks, to change dynamically based on the zoom-level. We specifically designed our map this way so that when user zooms-out on a spot, not all POIs will show-up at once and crowd the view. Instead, we designed an algorithm to determine exactly how many POIs we should display for the appropriate zoom level. Though it seems like an obvious feature to implement, we were surprised when we found out that we were the few groups that did this which made us unique and more attractive to users!

Video Demo

Algorithms to find the optimized route from A to B:

Dijsktra’s algorithm is a famous algorithm to find the quickest legal path between point A to point B. Even though it was a requirement for all the students to implement Dijsktra’s algorithm, my team went beyond the expectation and implemented an efficient version of this algorithm and passed all the performance tests as given by the course. We were able to achieve this through extensive use of data structures that provide O(1) speed in common operations, and we also integrated the A* algorithm  to focus on a specific direction and then exploring the optimized route from there. Looking back, these 2 algorithms were very hard to implement in 2 weeks alongside with 35 hours of demands from other classes. However I’m so proud of my team who struggled through together at the toughest times with barely any sleep and food, and yet we were still able to overcome this challenge!

Looking Back…

ECE297 Team photo 2

These silly photos of us really made me reflect back on how much we have all grown and how much I appreciate these friends for being there with me through this ride. Though we look happy in the pictures after we finished our final presentation, we all fought, argued, and celebrated prior to these photos because we care about the project so much. However our willingness to do well in this sometimes stressed us out and unintended words were thrown at each other. It is through this project that we all learned better about each other and confronted our feelings when one of us were hurt. Personally there were times when I lacked confidence in my ability to be a future software engineer, but it was them who supported and helped me get out of the depressing thoughts. Most importantly, I’m thankful that the 3 of us experienced and survived this journey together!

10 Mentalities I gained in High School

1. Just because someone else has a better or a different idea than you, it does not give you a reason to feel bad about yourself and/or the other person.

2.Similar to #1, just because someone else is better than you at something, it does not mean that you have to act defensive and compare your other strengths with him/her. Instead, use your energy to bring the other person up instead of putting your energy towards negativity. You are not going to be good at everything, and it is important to acknowledge the strengths of someone else.

3. Always have a mindset that is eager to learn something new, whether it’s a new skill, or something new about another person. Be open-minded to new things instead of fearing them.

4.It’s OK to fail the first time, because mistakes are crucial in the process of learning the right things and remember by heart.

5.Be open in accepting criticisms and advice from others even though you may think they are irrelevant. It’s good to know your image in someone else’s eyes. Again, this tip can be very useful in practicing the art of open-mindedness.

6.Even if in the back of your mind you are devaluing someone or you think they are not worthy of your time, erase that thought because

7.It is ALWAYS your responsibility to make the first move in breaking the ice when you initially meet someone for the first time. After all, this can paint a great first impression of you and help you improve whatever social fears you have.

8.Its never a bad idea to talk more than the other person (about yourself, different topics, etc…), except for gossiping about people, but do keep a good balance of not talking too much and let the other person engage as well.

9.NEVER stop trying and putting your 100% in everything because sky is the limit.

10.When you think others have it all together and everyone else are all in a better position that you, stop and erase that thought immediately because no one has it all together and they have other struggles that you have no clue about!

BONUS: Never underestimate yourself and the power you can exude onto someone else 🙂

My Economics News Article Investigation

Background of this investigation:

The main goal of this investigation is to find a current news article that is related to an economics concept, and then analyze the economical effects that this article could produce in the future. I have received an excellent mark of 13/14, which means I included relevant self-made diagrams, appropriate terminologies, and in-depth evaluation. Thanks to this investigation, it has sharpened my analytical skills, giving me a chance to view issues from an economical perspectives. Let’s keep on reading to find out step by step how I achieved this.

Introduction:

My article was about how an Canadian airline Westjet’s revenue increased when they implemented luggage fees. I thought this article would suit perfectly with the economical relationship between price elasticity and corporate revenue.

Link to the article

First off, I started my investigation with a 2-sentences summary of the article, highlighting the key points that are correlating with the economical concept that I choose. This provides the necessary background information for the reader, without wasting time reading the entire thing.

In order to for the readers to understand clearly about the economical concept  (always assume they have no prior economics knowledge), I provided few definitions of the key terms that I will be focusing on. This slowly introduces the reader to the purpose of my investigation, while providing the backbone of the economical concept. An example would be:”Price elasticity of demand measures the responsiveness of the consumers of a particular good in relation to the change in the good’s price.” Short and sweet definition!

 Diagram(s):

Diagrams are crucial in helping readers picture the situation visually. For economics, there are several unique graphs that are associated with certain economics concept. In order for the readers to understand the diagram, it needs to include small details such as axis, titles, labels and much more. The diagram below is an example of how I created an diagram that includes these small details.

price elasticity graph

In my diagram, I included a title, axis names, arrows to show the movement, specific numbers, and a name to refer to the diagram known as “Diagram 1”. These small details paints the entire picture for your readers, and are great supporting tools for your explanation.

Explanation of Your Diagrams:

For my investigation, I discussed how the implementation of luggage fees results in a bigger proportional increase in the fees per passenger, yet a lower percentage decrease in the quantity demanded for WestJet’s Flights since airplane flights have little substitutes. This proportion can be seen in the bigger arrow beside the y-axis, and smaller arrow beside the x-axis. Since my investigation is based on the article, I also referred back to the article through direct quotation, showing the readers that the economic concept actually relates to this article.

Evaluation:

This is the bulk and most important part of my investigation, where I discussed about 1-2 possible effects in-depth from the article that could occur in the future. For this part, I focused mainly on 2 evaluations: the long-run effects on WestJet if they continue to increase luggage fees, and the advantages for the stakeholders stemmed from this new policy.

To analyze the long-run effects on WestJet if they continue to increase luggage fees, I used another diagram (see below) to show the gains of one of its substitute airline, AirCanada.econ case study pic2

When WestJet increases its fees in the long-run, consumers will seek cheaper substitutes such as AirCanada, hence in the diagram above, there will be an increase in the quantity demanded for AirCanada flights. Since this article focuses on the increase in WestJet’s luggage fees, I expanded this point into looking at the long-run situation, in which case the diagram illustrated above could occur. This part of the evaluation really sharpened my analytical skills because I had to think outside of the box on how and why certain effects could occur on other firms due to this policy. I made few different versions of this evaluation prior to finalizing this one, and I tried viewing the effects from the consumer angle. However I realized that this point may repeat some of the things I discussed earlier, so I decided to take a brand-new approach to look at the effects on WestJet’s competitors. This way, I can combine in-depth analysis about the effects on potential consumers and effects on WestJet’s competitors. Similar to the first diagram I created, I paid attention to the small details so that readers can refer to them in my explanation.

Since I focused more in-depth on the first part of my evaluation, I simply wrote 3-4 sentences to explain my second point to avoid readers falling asleep reading my entire investigation.

 

 

 

10 Tips on Motivating Yourself to Work-Out

I have a love-and-hate relationship with working-out: I love it because I feel stronger afterwards, yet I hate it because of the painful physical process. As mentioned in my “Skills & Hobbies” section, one of my favorite hobbies is swimming, so for me, I treat swimming as my work-out routine. Having been a competitive swimmer who swims a few dozen laps 2-3 times a week, there were definitely times where I wanted to give-up and skip out my practice sessions. However, I learned few tips and tricks to change-up my mindset and motivate myself. Remember, committing to working-out is all about having the appropriate mentality, and with these tips below, you will be amazed at the results you produced from yourself! 

1. Have a reason or a goal as to why you are working-out: Similar to completing projects at work or school, these actions all stemmed from having a goal and a desire to achieve that goal. When you are facing emotional and/or physical barriers while working-out, having a goal creates a reason why you should continue this routine. Your goal will be unique compared to other people’s goals, so YOU gotta keep that goal in the back of your head to constantly motivate YOURSELF.

Continue reading “10 Tips on Motivating Yourself to Work-Out”

10 Tips on Time-Management

As a high-school student who had to juggle 5 different extra-curricular activities and maintaining decent academics, having the skill to manage my time properly has helped me a long way. In my last 2 years of high-school, I was a senior cadet in Air Cadets, on the Executive team for 2 major clubs in my school, practiced 1 hour piano every day for my Grade 10 RCM Piano Certificate, and maintained  a 90+ average at academics. Read below for 10 tips (in no particular orders) on how I learned to manage time efficiently and effectively!

1. Be disciplined, that means actually following your plans and schedules that you made: Most online tips would just tell you to make a schedule, but any plan can be destroyed by a single thought of procrastination (trust me I have made this mistake more than enough). In order for you to actually execute your planned schedule, being disciplined is definitely the key to success. What does being disciplined mean? It means telling yourself to stop procrastinating and actually get to work. When you have a busy schedule, you won’t be able to afford losing time to a few extra YouTube videos. To manage your time properly, going hard on yourself will only result better rewards for you.

Continue reading “10 Tips on Time-Management”

10 Overall Tips on Surviving IB

Looking back at my 2 years of being an IB student, I definitely learned many valuable lessons (except how to fully spell IB) and tips that made me into the person I am today. I finished IB with a 39/45 points, and I decided to make this post, which includes 10 tips gathered from my friends who got even high points, and myself as well. Enjoy!

1.Start early on everything: Waiting till the last night to start an assignment will automatically give you more stress. IB itself causes you a lot of stress, so why wait and give yourself even more stress? Plus, if you do wait till the last minute, the quality of your work will also slope downward, resulting in a bad mark.

Continue reading “10 Overall Tips on Surviving IB”

10 Tips on Choosing the Right University For YOU

Relating to my first post on “Life Events” where I discussed the process of my application to universities, this post is for me to share my insights on how to choose the right university/college for YOU! They are in no particular order, and these points are focused on choosing between University of Waterloo and University of Toronto (both are great schools in Canada) when I was in this difficult position. *Disclaimer: these points are purely my opinion/experiences, and it is crucial to be open-minded so that you respect the universities/colleges that you did not end-up choosing.

1.Visit the campus and get a general vibe of the post-secondary institute. See if you can get inspired in the surroundings of the campus. For example there was a distinct difference in the overall aura of the campus when I visited University of Waterloo and University of Toronto.

Continue reading “10 Tips on Choosing the Right University For YOU”

Canada’s Wonderland 2016!

This slideshow requires JavaScript.

Normally I would not feature a meet-up with friends in my “life event” page, however this was a meet-up with my fellow incoming first year Engineering students at University of Toronto! Even though this trip was entirely planned by few students in the pictures above, I can confidently say that we all had a blast that day! What was more amazing is that most of us had never seen each other before in real life face-to-face, yet we connected almost instantly and created that bonding experience with one another.

Continue reading “Canada’s Wonderland 2016!”