This web app consists of 7 tasks organized according to the assignment PDF.
The only requirement is to have Docker Desktop installed:
https://www.docker.com/products/docker-desktop/
- Run
docker compose up
in the root directory - Open http://localhost:5173 in your browser (my frontend with tasks 1-7)
- Open http://localhost:5003 in your browser (Prisma studio)
- Open Docker Desktop > Containers > isi-web-app-backend > Logs
- Some REST API endpoints require authorization.
Skip to task 6 and register or login with the following credentials:- Username:
a@a.hr
- Password:
test123
- Username:
- Return to task 1 and try uploading XML files from xml-upload-examples
- Explore Logs in the Docker Desktop as well as the Prisma studio to see the uploaded data
- Repeat with task 2
- In tasks 3 and 4, observe the logs and go to Container Files to see file generation
- Modify the generated file inside Docker, and repeat task 4
- Finish with task 5
- backend/app - a Node.js (v20) app running 4 servers:
- REST server (port: 5000)
- SOAP server (port: 5001):
- XML-RPC server (port: 5002):
- Prisma studio server (port: 5003):
- backend/XmlValidatorAgainstXSDusingJAXB - a self-explanatory Java (v21) app.
- Its purpose is to create an artifact (.jar) to be run by the Node.js app via
java -jar
command.
- Its purpose is to create an artifact (.jar) to be run by the Node.js app via
- frontend - a Vue.js app (port: 5173)
- XSD (XML Schema Definition)
- RNG (RelaxNG)
- XSD-JAXB (Java Architecture for XML Binding)
- My implementation: backend/XmlValidatorAgainstXSDusingJAXB