Housework Undoer — a meaningful challenge for aspiring junior developers
Tags: webdev, challenge, javascript, 100daysofcode
Published: 2020-10-10 18:48:35

Do you remember, the time one of your friends asked you to build a website? What were your feelings? 

Chances are you were excited, as you knew that you would be creating something, not for the sake of practice, but to bring value to someone else. To help someone.

Your work at that time had a context. You knew why you are doing it, you knew the reasoning behind the project, the problem.

Have you ever noticed, that is the exact missing piece with most of the project ideas out there on the internet? 

They often are sophisticated, technology-savvy, and full of design delights. But at the same time, they lack context for the project. 

They lack a concrete user problem — which is the exact reason why some projects may be built in the real world!


You may argue, that you are doing that project to practice engineering - why do you need to know all that stuff in such a case?

You are right. But now I'm not surprised why many companies devalue personal projects in juniors' portfolios and focus on looking for those that have actual work experience instead.

Because while you were working on those projects you were just practicing, not concerned with anything in mind, but the code.

At BandaWorks we like meaningful work. We value helping our community. And we are passionate about professional growth.

These three were the reason why decided to create our own project. 

It's called **Housework Undoer**. 

## So, what is Housework Undoer?

Well, it's a project (your captain 😉). More specifically, it's a self-paced challenge split into multiple tasks through which you'll have to build a frontend application using your framework (React, Vue, Angular or Svelte).

Tasks define what you need to build, why, but not how. 

Each one has a structure quite similar to the one used by development teams. They all include:

1. User story
2. Design mockup
3. Jack's comments
4. Acceptance criteria
5. Yoda's tips

Some of these might be new concepts to you, but as those are used by development teams, we decided to adopt them, even though you may not be comfortable with them in the beginning.

To flatten the learning curve, we prepared a quick introduction that should help you get a basic understanding of these concepts:

{% youtube 9lsL3oRKZaM %}
&nbsp;

Housework Undoer is made in a way to let you'll get a similar experience while working on the project that we've been getting through our development careers.

You'll work in the development workflow that is strongly inspired by the development process in tech teams.

And as there's a context, it will truly make your work more meaningful, fun and entertaining while still teaching you how to think about your users first. 


## Technical stack

To complete the project you would need to use your UI framework of choice. 

Of course, there's nothing stopping you from implementing using plain JS, but in the real world, it would be unsustainable.

So we recommend a few stacks, but you may complete the project in your framework if didn't include it:

- React
- Vue
- Angular
- Svelte

But to complete the project, you most likely will need to pick a few more packages on your own: routing, state management, testing, CSS-in-JS solution (or alternatively use a preprocessor), etc.

These will be left in your hands as you are the code owner of the project — you make the decisions there which later will affect how you build the project.

### What if I want my own backend?

The project assumes usage of Firebase as a backend. But there's nothing that stops you from making your own backend, let's say using Laravel (PHP) or Ruby on Rails (Ruby).

There will be a few tasks where you'll need to integrate your project with:
- [Authentication](https://firebase.google.com/products/auth) to provide a sign-in for your users
- [Cloud Firestore](https://firebase.google.com/products/firestore) - persistency, i.e. storing data in the database.

Only keep in mind, that at the time of writing "Yoda's tips" are providing only recommendations and insights on how to improve for frontend (but we may add backend later if there's some interest 🤓).

## Skills requirements

There are 2 basic requirements:

- Be confident in your skills with plain technologies like HTML, CSS, and JS. You need to use Git in your daily work.

- Be familiar with one of the UI frameworks (Vue, React, Svelte, etc.) or be ready to put the hard work and learn it on the way.


If you don't match these, we recommend you wait and not work on the project right now: the difficulty may result in frustration which will kill the learning process. 

Instead, continue learning and practice over a few small projects and after those get back to the Housework Undoer.

This way, you'll get more valuable experience from the project and will have only the necessary amount of frustration 😉


## Frequently asked questions

### How to start?

There're 2 options to start:

- **A.** If you are not ready to set up a project locally and just want to give it a try, use one of our Codesandbox templates

- **B.** If you already have decided, fork our starting repository on Github and follow our instruction for your framework

> To pick either one, [go to the Getting Started page straight away](https://banda.works/housework-undoer/getting-started).


### What if I get stuck or need help during the project?

It's easy: tweet your question with [#BandaHelps](https://twitter.com/intent/tweet?text=%3CYou%20are%20part%20of%20@BandaWorks%20and%20Banda%20helps%20every%20fellow%20member.%20What%20can%20we%20help%20you%20with?%3E&hashtags=BandaHelps) and your Banda will be right there to help.


### What to do when I'm done with the project

1. First of all, post the link to your repository with @BandaWorks mention on Twitter - we will definitely take a look and may even bring you a few thoughts on how to improve your code!


2. And don't forget to add the project to your portfolio - it will be a great addition showcasing your development skills to potential employers 😉

### Are there any code review or mentoring on the project?

Right now, we do not provide mentoring on the project, but we offer the code review of your project when you complete it.

### Where to send my feedback?

If you have any thoughts for us to improve, please send them to us. 

The easiest way would be to use our [feedback form](https://banda.works/feedback).

But you could use other ways instead:

- Post your thoughts right on Twitter with @BandaWorks mention - this way more people will be able to see your thoughts and this will help us improve even more. Even if the feedback is negative. We strongly respect transparency.

- You can also reach us using our email: team@banda.works


## What's next?

Subscribe to our twitter community [@BandaWorks](https://twitter.com/BandaWorks/) and stay notified on Housework Undoer updates and future project announcements!

We also post valuable content there: 
- Daily advice to help you become a stronger developer 
- Recommendations and thoughts on development articles by other authors
- Our own articles announcements

{% twitter 1313829364103077890 %}

Thank you for your time and have a productive day! 😎