Overview

Vulppi is an innovative company that provides tools to optimize and streamline the software development process. Its mission is to offer solutions that free developers to focus on what truly matters: creating amazing solutions that solve their clients' problems.

With a focus on efficiency and productivity, Vulppi offers products that simplify and accelerate development stages, from conception to delivery. The company is dedicated to being a benchmark in quality, innovation, and reliability, always striving to exceed the expectations of its clients and the market.

Architecture

The system architecture comprises various components that interact to provide essential functionalities to users. Below is a detailed description of each component.

Users

A user is an individual with an account in the system.

  • Each user can own one or more projects.
  • A user can have different roles within a project, such as Owner, Administrator, Member, or Guest.
  • Roles define the permissions that the user has within the project.

Projects

A project is a collaborative workspace where users utilize a set of functionalities together.

  • Each project has specific settings, such as name, description, logo, billing information, and connected tools.
  • A project can have one or more users but only one owner.
  • Roles assigned to users within a project determine their permissions and access levels.

The predefined roles in the system are:

  • Owner: Has full access to the project, including settings modification and tool management.
  • Administrator: Has access to the project but cannot modify the project's settings or perform deletion functions or disconnect tools.
  • Member: Can create and edit content but cannot delete or modify the project's settings or manage tools.
  • Guest: Can view the project's content but cannot participate in it; access is read-only.

Projects alone do not provide functionality. To perform tasks and add capabilities, projects must be connected with tools.

Tools

A tool is a fundamental unit of functionality within a project.

  • Tools can have dependencies and can depend on other tools.
  • Connecting tools to a project generates a persistence area to store data, which is used by functionalities or produced as a result of them.
  • Tools enhance the project's capabilities, allowing users to perform specific tasks within the development workflow.

Conclusion

The system architecture is designed to be scalable and flexible, capable of supporting a large number of users, organizations, and projects. It is highly adaptable to meet various needs, providing a secure and reliable environment for software development. The careful selection of modern technologies and frameworks ensures the system's scalability, flexibility, and robustness.