Coder Social home page Coder Social logo

quizc-java's Introduction

Quizzc

Quizzc is a console application that allows create and fill quizzes.

Current features

  • Create quiz
    • Supports the next kind of questions:
      • Text
      • Date
      • Pick one option (similar to a radio input element in HTML)
    • Each question type has its own associated validations, for example:
      • The question type TEXT supports the validations REQUIRED and MIN_LENGTH
    • Given a created quiz, it is possible to fill the values for its questions

Pending features to implement

Question types

Add support for a new question type called NUMERIC, and associate the next validations REQUIRED and MIN to it. Remember that you need to convert the values to int

Validations

We want to support other kind of validations for question's answer, some of them are:

  • Text validations
    • Max length
    • Only uppercase text

Because there will be the new question type NUMERIC we want to add the support for a MAX validation

Enhance the Show Quiz menu action

We want to enhance this action because currently the question information is not usefully, please enhance that logic to show the question title and answer.

Persistence

Currently all the information is stored on memory, that means quizzes are lost after finishing the application. Sometime ago, a member of the dev team did a research about persisting information in a JSON file, you can check and run the JsonPersistence.java file which was the result of the research.

  • Given the JsonPersistence.java file, try to reuse that code to implement the quiz persistence in a JSON file and also load a quiz given a JSON file. Don't forget to include the respective action menu for this.

Menu

We don't like how the action menu (Menu.java) is implemented, it has too much IFs; there should be a better way to implement it, try to provide a better alternative that helps in the maintainability .

Unit testing

There are some unit tests that will help you during the refactoring, it will be great if you can include more scenarios. Additionally, there are some test that are failing, there is something wrong in those fields, please fix them.

Submit your task

You have 3 hours for this assignment, the way to submit your work is:

  • If you have a github account, you can clone this project and refactor the application in your clone. You must push your changes before the time limit. After that send an email to [email protected] with the url of your repository.
  • If you are not familiar with git repositories, you can download the project from the next url: https://github.com/Ramir0/quizc-java/archive/main.zip To submit your changes, you can zip your project folder and send it to [email protected] before the time limit.
    NOTE: Please make sure only include project files.

NOTE

To run the application you must have installed OpenJDK-11 and Maven

Make sure that you are running the App.java file.

quizc-java's People

Contributors

ramir0 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.