BlogPress
As the name suggests, BlogPress is a web app for creating and maintaining a blog.
Registered users (aka authors) can create, update, and destroy articles. Authors write articles using Markdown syntax which is converted to HTML on-the-fly.
Articles remain private until published by the author. Published articles are listed chronologically on the homepage. All users can browse, read, and comment on published articles. An email will be sent to the author when a comment is submitted. The author can then choose to display or delete the comment.
https://github.com/ryansobol/blogpress
https://blogpress.herokuapp.com
Just me, Ryan Sobol.
- Twitter Bootstrap, jQuery, and the Asset Pipeline
- SimpleForm
- Authentication from scratch
- ActionMailer
- Brakeman
- Heroku
From the beginning, I wanted to support articles written in Markdown. I decided to save the body text as is and use the RedCarpet gem to convert the text into HTML when rendering the article page.
I'm also really pleased with how selecting a published date turned out. I decided to replace Rails' date input field with the jQuery UI Datepicker plug-in. It's much more user-friendly.
Mostly by testing the app in the browser. I wrote some specs for sending emails though. My wife helped me find some bugs near the end.
I struggled with jQuery for a while. The selector syntax is really hard to remember. Thankfully, a classmate came to the rescue.
I also had a hard time with Devise. Eventually I had to drop it for something simpler. Maybe I'll give it another try this Summer when I have more time.
Also, work was really demanding in May so I wasn't able to finish all the features I wanted. But, in the end, I'm happy with the way everything turned out.
More jQuery animations! I stared tinkering with them near the end and now I'm hooked.
I would have spent more time sketching out the UX and UI for the homepage. I spent way too much time tweaking the HTML and CSS for that page.
Actually, the final version is pretty close to my initial visiion. The project was heavily inspired by my experience using WordPress for a personal blog. I've known what I wanted to build for a while and now I have the skills to do it!