The blog is the quintessential 'Hello World' app for Rails. But who has time to read a long blog post anymore? Krumblr is a Tumblr-like app which allows users to post short snippets. The brief for the features is deliberately vague so that we can see how you interpret the requirements and solve problems accordingly.
As you work, please keep a log of the time you spend on various features.
At a minimum the following features should be implemented:
- Users can sign up and create and manage one or more blogs.
- Users can create posts on the blogs.
- Posts can be text-only.
These are additional features which do not have to be implemented (although we'd like to see at least a couple of them). Feel free to pick and choose from the following the things you'd like to demonstrate or that might pose an interesting challenge. You're not limited to what's in this list here, so if there's an interesting feature you'd like to try out, please do. These are just a few ideas to implement:
- Comments on posts
- Tags/categories on posts
- Reblogging posts
- Liking posts
- Different post types (images, code snippets, embedded video, etc.)
- Searching the contents of a blog
You can implement as many or as few of these as you'd like. More features/ more work is not necessarily better. Code quality is important, so a couple of features implemented well goes a long way.
-
You're welcome to use gems for various features; we're interested in how you solve problems though, so maybe don't use them for everything.
For Katalyst projects, we regularly use
Devise
(includingOmniAuth
);SimpleForm
; andFriendlyId
so you're welcome to include any or all of these in your project. Of course, you're always free to use something different or roll your own option if you prefer. Let us know either directly or in comments the reasons for your choices! We always want to learn new things, too.
-
You're welcome to include a CSS framework (or style it from scratch) to you're liking, but again, it's about the approach to problem solving. UI is part of that, but it doesn't have to be the main focus.
-
You can switch to PostgreSQL or MySQL/MariaDB, but stick with ActiveRecord.
-
Testing is important, so make sure you have appropriate coverage with specs.
-
This project is set up to use RSpec, but you're welcome to use MiniTest or another test framework if you prefer.
-
Readable code is good; comments are appreciated where things aren't immediately obvious.
-
You can change the
.ruby-version
if required; the minimum required version is2.4.1
for Rails 5.2. -
For junior candidates with no prior Rails experience, we will primarily be assessing your ability to learn over the course of the challenge.
-
For senior candidates, we'd like to be able to assess your problem solving skills, not just your rails knowledge. If you wish to tackle a different extra feature that might better prove your ability to problem solve, you're welcome to discuss it with us.
- Fork this repo. Keep the forked repo public, too.
- Code your app.
- Commit your changes (frequent commits are good; separate branches for different features are also good).
- Send us a link and/or submit a pull request so we can see what you've done.
If you'd like to show us a working app, you could deploy to something like Heroku, or even include CI using Travis, but don't feel obliged. As long as we can get it up and running on localhost, that's fine.