Inspiration

I've recently begun learning Rails and came to the hackathon hoping to use that. During the initial partner pitches Cozify announced that it had just launched the ability for users to create custom rules with python scripts. I knew that this had the potential to unleash a new realm of possibilities in home automation. I started with the idea to create a few custom scripts of my own, but realized that I had the ability to have an even bigger impact by allowing coders and non-coders alike an easy way to discover new rules and share their own creations with one another.

What it does

It serves as a hub for users to discover and share custom Cozify rules. Users can filter based on capabilities and search the text of the code and can easily add their own rules. Rather than manually inputting the meta-data such as name, description, capabilities, etc. the app will automatically extract it from the script itself. Users authenticate through github and are able to edit or delete the rules they've submitted.

How I built it

It is a fairly standard rails application.

Challenges I ran into

I am very new to rails development and have never used it to develop anything of this complexity. I'm not a front-end dev and was working alone, so I chose to focus on the backend to get functionality up rather than making it look pretty. I did have to do a little, though, and getting it to look like it does now (still ugly) too more effort than I wish it did. I'm not as familiar with rails testing frameworks as I would like to be, so testing the code was a challenge and it isn't tested very well.

Accomplishments that I'm proud of

I am proud that I was able to build a working MVP by myself over the weekend with a new stack that I don't have much experience with. I am also proud that I have made it easier to contribute rules by parsing the important information out of the scripts automatically without requiring user important.

What I learned

Front-end work, especially layout and design, is a completely different skillset than backend work. Of course, I knew this already, but every time I do a project from scratch I am reminded of this fact.

Rails really is a powerful framework. If I had more experience, I could build sites like this even more rapidly -- but even with my little experience I was able to build something that works. And I'll continue being able to add features that would take much longer with other frameworks.

What's next for cozify.me

  1. Tests - I need to set up tests before Cozify owners begin using the site to make sure the site is functional, robust, and secure.
  2. Design - The site needs a coat of paint to make sure it lives up to the level of design and polish that Cozify owners expect
  3. Features - The ability to favorite rules, discuss them, sort by favorites vs most recent, user profiles, etc.

Based on my experience with Rails so far, I think after I accomplish 1 and 2, number 3 should come very quickly. :-)

Built With

Share this project:

Updates