Feature Project

Build a feature to include on your application website. This project is open-ended and a chance for you to explore creating something with different complex parts that interact with each other.

Examples

A Tortoise Race

A user can click a button to see a race between multiple tortoises from one side of the screen to the other. The tortoises move at different speeds in each race, and the user is notified who finished first. The user can alter the race in some way - by naming the tortoises; changing their speeds; or adding additional racers.

A slideshow of images automatically plays on the page. The user can pause the carousel and click buttons to see the next or previous image in the cycle. Include a set of dots under the carousel indicating which image in the sequence is visible, and can be clicked to navigate to a certain image.

A fortune teller

The user can ask a question and receive a response from the fortune teller. After a certain amount of idle time, an animation is played, or a message pops up to notify the user the teller is available for fortunes. There are a fixed number of responses, that are randomised whenever the teller is used and give a variety of outputs.

Planning

Before building the feature, you might like to spend some time planning exactly what it it should do. You might like to draw out the user interface on paper or create some wireframes.

Break your feature down into it’s constituent parts, don’t try to code it all as one monolith. You might like to use separate functions for each large part of the feature. You might use comments in your code to remind yourself what each part is doing.

Building

Focus on building one part at a time, and test it as you go. You might use tutorials for different parts, if you are - we recommend trying to write all the code yourself and refactoring it until it makes sense to you.

If you’re offered an interview with Founders and Coders, we’ll usually ask you to talk through some of your code. Being able to explain what the code does in conversational English is an important skill for any developer.

Copy and pasting or following a tutorial without thinking about what the code is doing will limit what you learn. When you’re finding help elsewhere, aim to build within your own skillset and in a way that makes sense to you.

Debugging

You will face errors, challenges and bugs as you build a feature. This all part of being a developer. Knowing what to do when you face a problem is what makes a good developer. Focus on following a path through your code, understanding what is happening at each step, and checking whether you’re getting expected results by logging values.

Rubber Ducking is explaining code aloud to debug and gain a fuller understanding of what is happening.

You’ll likely use console.log() often as you work through the project to check what is happening in your code.

Using Google, resources, articles, and asking for help on Discord will all help you when you’re in a pickle. Even taking a walk around the block, or sleeping on something can be all you need to resolve a tricky bug.

Documenting

We’d like to hear about what you created, and how you created it. For this project, you’re required to include a README.md file. These are written in Markdown and give an overview of the project. You might like to include sections which follow the three headings above: planning; building; and debugging.

Build something you find interesting

The above examples give you a sense of the kind of feature we’re looking for. It’s up to you to build something that you find challenging, and engaging.

We’re looking for creative features that you have built yourself. Is there something you’ve always wanted to see on a website? A type of game you enjoy? Something that would add additional functionality to your site? And most importantly, find something you enjoy building!