Introduction

A command line application developed in Java programming language. The main purpose of this project is to act as a qualification test of mastering of Java.

Requirement

Manage addresses by adding, searching and removing address entries.

Must be implemented features

  • address entry data structure

    • name of the person

    • mobile number of the person

    • home address of the person

  • start interactive command line application

    sh> java -jar ab.jar

    ab> _

  • use add command to add new address entry

    ab> add

    name: xiaoming

    mobile: 18888888888

    address: xiaoming jia

    address entry added

    ab> _

  • use search command to get one or more address entries

    ab> search

    by (name|mobile|address): name

    name: xiaoming

    one can search by name, mobile or address, regular expression can be used to query. if more than one entires are matched, they should be all displayed.

  • use remove command to remove one or more address entries

    ab> delete

    by (name|mobile|address): name

    name: xiao.*

    two address entries deleted

    ab> _

    one can remove by name, mobile or address, regular expression can be used to query. if more than one entries are matched, they should be all removed.

  • get help

    ab> !help

    then help message should be displayed, and when encoutering invalid command, help message should also be displayed.

  • quit from the application

    ab> !quit

    sh> _

Nonfunctional requirement

  • project must be managed by Maven, latest version of v3

  • unit test is a must

    • coverage should be higher than 85%, and Cobertura should be use to measure
  • javadoc for public interface/class/method is a must

  • both Java code and XML should be well-formatted

    • NEVER use tab for indentation
  • XML should be used as backend persistent storage

    • it is only allowed to use JDK builtin DOM implementation
  • ExecutorService should be used to handle commands

  • Maven assembly plugin should be used to assemble the application

    • mvn clean install, then everything should be ready, and one can find assembled application under target folder
  • DO NOT store any IDE specific files into git repository

  • if there is any fault in this readme, please also fix it or submit an issue

Note

  • Fork me and use pull request to submit changes to develop branch. Anything unclear about the feature, fire issue.
  • You should submit your source code and pom file