Skip to content

Frontend and Backend

Daniele Guido edited this page Jan 28, 2024 · 1 revision

The Impresso project features a well-structured infrastructure with distinct frontend and two backend components: impresso-middle-layer IML and impresso-user-admin IUA. However, the frontend communicates only with the IML.

The frontend is built on Vue.js (version 2) and utilizes socket.io to communicate with the backend. As stated in the official doc,

Socket.IO is built on top of the WebSocket protocol and provides additional capabilities such as automatic reconnections, broadcast support, or falling back to HTTP long polling.

Feathers.js is employed on both the client and Node.js server, facilitating real-time interactions with the IML. Acting as the API backend, the IML manages data flow, including article searches, collection creation, and user authentication.

An integral component of the backend is an Express middleware-based proxy responsible for authenticating users before serving IIIF images or JSON data. Authentication relies on JWT tokens, ensuring secure user identity verification. The IML also exposes a couple of services to handle user management, such as registration and authentication. User related services get data out of a SQL database, while other services transforms the requests in SOLR query.

The second backend IUA backend's user management system, powered by Django, handles tasks such as registration, authentication, and authorization. User data is stored in an SQL database, providing a structured storage solution. This well-integrated architecture enables Impresso to deliver a seamless and secure platform for users to engage with historical articles and collections.

Clone this wiki locally