About the project

A look at the main technologies driving the Louv project: languages, frameworks, environments, and servers that PatataTeam applies from the PBL in Multimedia Engineering.

Introduction

In Louv we wanted to build a solid, functional project aligned with the knowledge acquired in the University of Alicante within the degree of Multimedia Engineering. That is why we chose a set of technologies that would allow us to learn and at the same time apply programming knowledge from previous years. Our goal was not only to develop a useful solution, but to do so by applying the philosophy of Project-Based Learning (PBL), integrating programming, design, and teamwork within PatataTeam.

Technologies

In Louv, we use the stack MEAN (MongoDB, Express, Angular, Node.js) to develop a scalable and as efficient as possible application. Additionally, we incorporated other additional elements such as Rasa to create functionalities like the chatbot's.

Angular Logo © Google — CC BY 4.0 License

Angular

Framework of JavaScript to build dynamic and complex user interfaces in web applications.

Although we already knew it, we hadn't used it much, so we decided to use Angular because it represented a manageable challenge and at the same time offered us a solid structure for a large project like Louv.
Its ecosystem, documentation, and community make it an ideal tool for learning good practices and maintaining clean code.

Why we use it:

  • We knew it, but we wanted to go deeper.

  • It allows structuring large applications well.

  • It facilitates deployment together with Apache.

  • It has a good community and support.

Logo oficial de Node.js, OpenJS Foundation
Node.js is a registered trademark of the OpenJS Foundation. Logo used for informational purposes.
Logo oficial de Express.js, framework para Node.js
Express.js logo © Node.js Foundation. Used for informational purposes.

Node.js

Runtime environment for JavaScript on the server. It allows running JavaScript outside the browser and building backend applications.

It was a technology that we already mastered, so it allowed us to work safely on the server side. Node fits very well with modern applications and gives us speed and flexibility.

ExpressJS

Framework for Node.js that facilitates the creation of web applications and RESTful APIs. It simplifies the management of routes, middleware, and HTTP requests.

Having used it previously, we knew that Express was ideal for building a fast, clear, and modular API. It makes organizing the backend much easier.

Por qué los usamos:

  • They were technologies known by the team.

  • Their flexibility and creativity allow us to develop quickly.

  • They facilitate communication between Angular, Rasa, and the database.

Logo oficial de Rasa
Rasa logo © Rasa Technologies. Used for informational purposes.

Rasa

Framework open source for the development of chatbots in Python with natural language processing (NLP). It allows the creation of intelligent and customizable bots.

This was indeed a completely new technology and one of the biggest challenges of the project. We chose Rasa because we wanted to add advanced chatbot functionality and learn something totally outside our comfort zone.

Why we use it:

  • It was a technical challenge that we felt like taking on.

  • Allows you to create powerful and customizable chatbots.

  • It fits with the idea of learning and exploration of PBL.

Logo oficial de MongoDB, base de datos NoSQL
MongoDB Logo © MongoDB, Inc. Used for informational purposes.

MongoDB

NoSQL database manager that stores data in JSON document format. It is flexible and allows easy scaling to handle large volumes of unstructured data.

Although we knew MongoDB, we had never used it for such a complex project. Its NoSQL nature gave us the flexibility we needed for a constantly evolving system.

Logo oficial de Apache, software de servidor web
Apache logo © Apache Software Foundation. Used for informational purposes.

Apache

Web server open-source that allows managing HTTP requests, distributing them to other services, and managing server load.

We had never used it before, but we needed a powerful web server capable of acting as a reverse proxy. It was an important discovery within the project.

Why we use it:

  • Mandatory and new challenge for the team.

  • It offers us security, reverse proxy, and centralized control.

Technical challenges

During development, we faced and will continue to face challenges that force us to reconsider some technological decisions. For example, we have already had to solve compatibility problems, such as those arising with Rasa, reorganize certain parts of the code and structure, and even question whether we should use MongoDB or a database SQL, given that the complexity of our tables surpasses that of some other projects. In addition, we have had several mishaps with Apache, which, unfortunately, have affected other areas of the project, further delaying progress. Although these obstacles have slowed down the process, they have also been an opportunity to improve our ability to diagnose problems and find creative solutions. 

About the project

You still don't know what Louv will look like?

Visit our blog post in which we show you some of the interfaces that you will soon be able to experience yourself.

Add a comment

Your email address will not be published. The required fields are marked with *