You are on page 1of 2

Ipsator Analytics

Java Coding Task


OVERVIEW
Build a permission based authorization system for API access control.

Users should be able to login using credentials and receive a token. That Authorization token will
be later passed on each API. Create two type of API’s:

1. Public API - Anyone can access

2. Private API - Only users having role with a particular permission should be able to access

SPECIFICATIONS
1. Included embedded server to run your application.

2. Do not use any deprecated methods, libraries, etc.

3. Use any RDBMS like mysql/postgresql as your database.

4. Git must be used for version control & all commits must have the same author’s name
& e-mail address as shared with us.

5. Maintain appropriate commit history while working on the project. Submissions with just a
single initial commit will be rejected. Make as many incremental commits as you can while
progressing through the task.

6. The project must be submitted on GitHub as a public repository. Do not mention Ipsator
anywhere in the project. The repository should include a jar built with the latest code at
the default location. Include a readme file to specify how to run the project.

GUIDELINES
These guidelines are not mandatory but will give you extra marks if followed:
1. Try using the latest LTS version of Java.

2. Use any of the latest frameworks/libs that you like.

3. Validate API inputs in the login API’s.

4. Add any logging lib and use it for logging.

5. Try to follow best practices & latest standards for lib usage, coding, version control &
design. Try to write modular/reusable code wherever possible.

6. Try to add comments to the code wherever it might be suitable.

7. Before submitting, consider optimizing performance, memory usage & stability.

REQUIRED FEATURES
1. Rest API’s to register and sign in users.

2. Two rest API’s as in specification.

EVALUATION
Evaluation parameters include the following & are prioritized in the same order:

1. Fulfillment of requirements
2. Number & severity of bugs/crashes
3. Following guidelines
4. Code quality, formatting, readability & safety
5. Version control practices & commit history

You might also like