Hello, my fellow coders, programmers, and those that may be interested in the field. My last post talked about a frustrating week I had in regards to solving errors found in my application, which is now semi-complete and can be found here. The application taught me a lot, which I will explain later on, but the application itself is essentially a Yelp clone. It is designed to be a living database for food and beverage areas built by users and customers of those particular establishments. If you look at my application, then you will see that I designed it to list coffee houses. I mean, who doesn’t like coffee? So, check it out and add your favorite place to grab some java!
So, let’s talk about some of the features of this application and a few things I learned while building it:
- User interactive content (User Profiles)
- Uploading of images (Gems)
- Backend development (#Routes)
- More CSS (Styling)
User Interactive Content
One of the coolest features of this application was building a user page and essentially allowing the user to interact with the web page. I feel like this is one of the more important features for an application because it allows a person to have control, and it really makes the user feel like they have some “ownership”. Maybe this is my own personal opinion, but I feel like having the ability to add or make changes to a page, website, or application really is conducive to the success of that product. In the digital world of the Internet, it goes a long way to produce that feeling of property or intimate space of belonging. This is one reason why I think digital spaces like social media apps are so popular.
This particular application allows the user to generate places, which can then be found on a map with the help of some Google and Bing API integration. The user can then add comments about the specific place and even a rating for the service, food/beverage, and overall atmosphere. Then, the user is given their own particular profile page that stores that information and has a running archive of places created, commented on, and photos uploaded to the site. It really is fantastic to be able to build and implement something that may seem common on the web today, but was foreign to me in being able to create those functions mere weeks ago.
I just mentioned this in the previous section, but uploading images help create that space for users to feel like they have some ownership in the application. Learning to use this feature with the help of a gem called “Carrierwave”. This particular lesson was self-directed and it took a bit of time to create the fields necessary for the feature to work. Most of the time was spent on finding the correct path for the images to be stored and then shown on the application itself. However, there is still work to be done on the application for featuring images on the index page and places page. My ultimate goal is to create a more sleek way to present the images and allow the user to see a feature image accompanied by smaller thumbnails. It is a work in progress!
For the time being, a person can upload any images of the establishment, the food or beverage, or even themselves enjoying those things! It is user directed, so the options are endless.
The command used in my vagrant environment often is rake routes. This project pushed me to start creating more features on my own, and one of the main points of emphasis was directing the page properly. This delves into the backend part of the development process and is helping me to learn how to build databases and frameworks. Locating where specific functions should direct a user is a bit difficult, but extremely satisfying when it works!
Firehose creates an environment of learning that sort of pushes you right into creating and developing. Honestly, you do not even realize that you are learning a great deal until you step back and reflect on what feature you just built or how specific functions are tied together to produce an outcome. I really look forward to the journey of building up the skills necessary to be a competent programmer.
What can I say? CSS is difficult to perfect for beginners and finding the right item within an element can sometimes be a task. It took some long hours and a great mentor session to implement some styling changes I wanted for my application. Luckily, perseverance goes a long way in coding. My current status on CSS is summed up with the following meme:
Comments and questions are welcome! I am happy to share anything about my experience so far.