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. Head to Women Go Tech Community Slack to find your teammates.
4. You will have the opportunity to meet with SEB representatives and discuss the outcome of your task and any outstanding questions during Career Day on October 2nd. More details will be shared via email and Slack leading up to the event.
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
- Best practices for REST API design by John Au-Yeung and Ryan Donovan
- All About APIs by Ben Cheung
- API Gateway by Google Cloud
- The Twelve-Factor App
- Step by step guide to becoming a modern backend developer in 2024 by Roadmap.sh
- Intro to Unit Tests by Abhinav
SEB is one of the largest product development and technology employers in the Baltic region. In total more than 1 400 employees work within those areas. We are driven by collaboration, insight and a desire to change and improve. We value a healthy balance between a stable yet exciting job and our personal lives. Work from one of the most modern and inspiring offices, with the possibility to work remotely. If you want to take part in shaping the future bank – our doors are open!