Skip to content

Features

Alexandar83 edited this page Feb 8, 2025 · 23 revisions

The Wall API offers a versatile set of functionalities designed to simulate large-scale construction processes programmatically. Each feature is carefully designed to ensure performance, scalability, and ease of use.

Feature Highlights and Details

1. Simulation Modes

  • Sequential Construction:
    The build simulation calculations are done in the main thread.

  • Concurrent Construction:
    Multiple wall sections are built simultaneously, leveraging threading and multiprocessing.

2. Interactive API Documentation

  • Swagger-UI:
    An interactive web interface for exploring API endpoints and testing them directly.

  • ReDoc:
    A detailed, developer-friendly API documentation platform integrated into the project.

3. User Management

  • API Endpoints:
    For creating, updating, deleting, and managing user accounts.

  • Token-based Authentication:
    Secure access to API endpoints, enabling personalized interactions.

4. File Management

  • Upload:
    Easily upload JSON configuration files for wall configurations.

  • List:
    View all uploaded configuration files associated with your account.

  • Delete:
    Remove unused or obsolete configuration files securely.

5. Construction Progress Querying

  • Daily Progress:
    Query the daily costs and material usage for each wall section on a given day.

  • Overall Progress:
    Retrieve a summary of total wall construction costs, either for a specific day or as a cumulative total at the project's completion.

6. Database and Caching

  • Database Storage - PostgreSQL:
    All relevant data, including user information, wall configurations, and construction progress, is stored in a robust database.

  • In-memory Cache - Redis:
    Speeds up frequently accessed data by using an in-memory cache, optimizing performance for repeated queries and operations.

7. Asynchronous Task Processing and Scheduling - Celery

  • Distributed Task Processing:
    Heavy computations are processed in the background, with results available via a follow-up API request.

  • Task scheduling:
    Facilitates scheduling of tasks, allowing for periodic execution of archiving and cleaning jobs.

8. Rate Limiting

  • Rate Limits:
    For authenticated and unauthenticated users.
  • Scoped limits:
    For specific functionalities like user and file management.

Next:   Dependencies
Back to: Project Overview

Return to Top
Home Page


Clone this wiki locally