The Frontend

The Frontend of the application is separated from the backend and located in the frontend directory. This allows us to create a Single Page Application (SPA) using popular frameworks such as VueJs, ReactJS, and React Native. For this project, VueJs was used.

The frontend directory contains the following structure:

frontend/
└── src
    ├── Components
       ├── Forms
       ├── Layouts
       └── Utils
    ├── Pages
       ├── 2FA
       ├── Auth
       ├── Dashboard
       ├── Errors
       ├── IPAuth
       ├── Management
       ├── Settings
       ├── System
       └── pages.js
    ├── index.js
    └── utils
  • src: The source directory of the frontend.
    • Components: Directory containing reusable components.
      • Forms: Contains input and form components used in the frontend of the project.

      • Layouts: Directory with layouts for different sections of the frontend.

      • Utils: Directory containing utility components such as Notifications, Messages, Search, Pagination, among others.

    • Pages: Contains the system pages related to the component names rendered from the backend.
      • 2FA: Screen for two-factor authentication.

      • Auth: Pages for authentication modules.

      • Dashboard: Index page of the application for customer and administrative users.

      • Errors: Screens for error pages.

      • IpAuth: Pages for IP authorization modules.

      • Management: Directory containing pages for administrative panel sections.

      • Settings: Screen for account configuration sections.

      • System: Sections for global configurations.

      • pages.js: File containing an object with the Component Name (key): Directory where to locate it.

    • index.js: Entry point of the application. Here the integration of InertiaJs with the VueJs framework is configured, which allows a monolithic backend like Django to render components like an SPA.

    • utils: Utilities in JavaScript used in the frontend.