Giter Site home page Giter Site logo

fizzbuzzer's Introduction

FizzBuzzer

An application that : [first screen] Have a form that accepts five parameters : three integers int1, int2 and limit, and two strings str1 and str2. [second screen] Display a scrollable screen with a list of strings with numbers from 1 to limit, where: all multiples of int1 are replaced by str1, all multiples of int2 are replaced by str2, all multiples of int1 and int2 are replaced by str1str2.

Table of Contents

  1. Choices I made
  2. If I had more time

Choices I made

  • I displayed the result in a recyclerview where each cell process what it should display according to it's number. It allow us to be unaffected by the limit chosen by the user.
  • I didn't built any architecture or worked on several git branches as it seemed irrelevant on a project with this size, data flow & future perspectives.
  • I took the liberty to interpret some cases, for example if I enter buzz, 5 before fizz, 3, should we display buzzfizz or fizzbuzz ? In a work environment I would have asked what was more relevant to the use case or at least acknowledged the choice I made but here I just added a comment where it seemed justified.
  • I commented the key functions only but we may be extend the code coverage if needed, if we want to build an sdk for example.
  • I tested the data processing part only. It seemed logical as it is the heart of this application logic.
  • This readme is in english even if the target audience is likely to be french natives. It seemed logical as 1. this is a readme and 2. the subject was in english too.
  • I used Rxkotlin as it is the technology I'm familiar with

If I had more time

  • we may add some help with the form filling which is a bit annoying for the user. We could remember what he entered last time and/or suggested some word and period above the keyboard. Example:

example of filling suggestion

  • We could build an interface that allows you to add N fizz / buzz words. Every time you fill a cell with a word and a period, another one pops up bellow with empty fields (or you have a "+" button)

  • The help of a designer would be a big plus, the UX isn't that great and on the UI part we're a bit too close to the raw and outdated material design

fizzbuzzer's People

Contributors

guillaumehugot avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.