Ruby Projects

Click on pictures for live apps.
I built for my portfolio
Real-Time Chat App
What I learned:

Use Action Cable in a simple way to make a chatroom for multiple users and to have in-memory data storage on heroku I used the gem redis 3.3.1. Further I could exercise some markdown which came in handy for readmes on GitHub.

What I liked most:

I really liked the simplicity of the app. Especially the minimum amount of gems and fancy functionality. It’s a mix between Michael Hartl’s and DHH’s instructions on action cable usage.

What I could improve:

I could add o-auth and gravatar pictures in addition to usernames only.

github-256
github-256
Rails Blog
What I learned:

I learned to handle bootstrap-sass and could build a user and validations with RegEx without devise. I also used the will_paginate gem for the first time which was useful for blog posts and categories.

What I liked most:

This was one my first blog from scratch. I enjoyed the process of connecting models with polymorphic associations and building instances like comments through other models.

What I could improve:

I could style this app out of its “bootstrappy-look”.

Likable Photogram
What I learned:

I learned to use paperclip for uploading pictures (I’m already looking forward to Rails Active Storage). Moreover I wrote tests and used haml for syntax simplification. I later learned to like the slim gem a lot more.

What I liked most:

Learning BDD with RSpec and Capybara was fun and challenging. Throughout the app I stopped writing tests out of confusion but I’m still practicing in other apps.

What I could improve:

There’s a bug that prevents the user from updating his profile I couldn’t find.

github-256
github-256
Task-Manager App
What I learned:

I used the power of materialize css-framework to get going with the styling. Moreover I used the states (current_user.where(condition)) to set the cards to their task column.

What I liked most:

To my astonishment I found materialize css to be way more adaptive than bootstrap or foundation. I think I’ll use it in the future for similar projects.

What I could improve:

I could style the app further. Materialize is great, but some more styling would give this app a more unique look.

Message Board
What I learned:

I learned that simple idea-packaging can make the difference between a blog and a message board, where blog posts are clickable through message cards. Then I learned using AWS to store and link my pictures, since the native heroku won’t work for this purpose.

What I liked most:

I tried to style this app out of the bootstrappy look it had. I’m satisfied with the result and will try other storage providers than AWS to compare the benefits.

What I could improve:

I could have implemented profiles for users and the ability to follow other users.

github-256
github-256
Movie Voter App
What I learned:

Sometimes only one background picture linked to AWS and some additional CSS are enough to make the app look a lot nicer. I also learned to use the acts_as_votable gem and made some voting configurations.

What I liked most:

I really liked the usage of acts_as_votable. It has a lot of options to fit almost every situation where you ask somebody to vote on an element.

What I could improve:

In a future app, I’ll implement direct upload to Amazon Web Services. This way the movie pictures don’t get lost in the abyss of the heroku database reset.

Monster Slayer with Vue.JS
What I learned:

I learned to connect a Vue instance and interactions with the DOM such as listening to events, two-way-data binding and dynamic styling. In addition I used conditionals and rendered lists with v-for.

What I liked most:

The simple syntax that Vue.JS provides for if-else statements, for-loops and event listeners. Furthermore I liked the implementation of Vue with a simple cdn link. I’ll use the real Vue workflow for future projects as well.

What I could improve:

I could have implemented an even more powerful attack that would hurt the monster the most but weaken the player as well.

github-256

Leave a Reply

Your email address will not be published. Required fields are marked *