Portfolio Project powered by SEB Bank

Creating RESTful Application

Developing a RESTful applications is highly relevant for aspiring backend developers as it provides hands-on experience in building critical components of a backend system. It offers an opportunity to practice key backend development skills such as handling HTTP requests, data validation, file management, and implementing RESTful APIs.

Additionally, understanding how to manage log events is fundamental for maintaining and troubleshooting applications in real-world scenarios, making this task invaluable for aspiring backend developers looking to gain practical experience and advance their careers in backend development.

Create RESTful application by using any of back-end language which meets these requirements:

1. If not exists creates JSON file and stores data in that file.

2. If file with content already exists, application should use that file.

3. Allows to add additional log event using POST http method endpoint and stores new entry in JSON file.

4. Allows to fetch all events from JSON file using GET http method.

5. Allows to modify specific log event by ID using PUT http method.

6. Allows to delete all log events using DELETE http method.

7. Allows to delete log event by ID using DELETE http method.

8. ID field in JSON object is incremental.

9. Input data should be validated.

    a) ID is numeric.

    b) Timestamp is data format.

    c) Type is ENUM of possible values provide in below examples.

    d) Message is String which could be up to 1024 symbols.

    e) UserId is alphanumeric up to 6 symbols.

    f) TransactionID is UUID and contains unique identifier of transaction.

    10. Code should be tested by unit tests.

    Task Scenario:

    As an application administrator, I want to have the ability to see and modify events of application logs in a separate application via a web browser to better understand how the application behaves.

    JSON data example:

    [

       {

          “id”:0,

          “timestamp”:”2024-03-18 21:00:05″,

          “type”:”DEBUG”,

          “message”:”Data stored”,

          “userId”:”7P96R4″,

          “transactionId”:”987546321-745689-4785123″

       },

       {

          “id”:1,

          “timestamp”:”2024-03-20 09:10:47″,

          “type”:”INFO”,

          “message”:”Connection was successfull”,

          “userId”:”642Q4T8″,

          “transactionId”:”2195646-745689-4785123″

       },

       {

          “id”:3,

          “timestamp”:”2024-03-20 14:58:02″,

          “type”:”WARNING”,

          “message”:”Missing parameter”,

          “userId”:”632V47″,

          “transactionId”:”54624165-4985641-4785123″

       },

       {

          “id”:10,

          “timestamp”:”2024-03-27 18:13:59″,

          “type”:”ERROR”,

          “message”:”Exception: Failed to store data”,

          “userId”:”451136″,

          “transactionId”:”75654132-745689-987544″

       }

    ]

      1. The main goal of this task is to create a RESTful application using any backend language, meeting specific requirements for managing application log events. For reference please see event logger sketches in the supporting material tab below.

      2. Suggested completion time is 2-3 weeks.

      3. The tasks can be completed individually or in groups of mentees, with the option to invite QA mentees as well. In a group setting, QA mentees will be tasked to test the application according to specified requirements.

      Event Logger Sketches

      Click here to download the file. These attached sketches could provide a sense of where those endpoints of RESTful application would be used.

      Recommended Reading