Skip to content
Jason Chen edited this page Jul 24, 2024 · 10 revisions

Welcome to Fluent CMS

Fluent CMS is an open-source content management system designed to simplify the workflow for web development. By dynamically generating APIs and web pages based on schema definitions, Fluent CMS reduces repetitive tasks and accelerates project development.

Key Features

  • Dynamic Schema: No more hard coding. Change your schema definition, and Fluent CMS updates your backend and frontend automatically.
  • API Generation: Automatically generate CRUD APIs based on your schema definitions.
  • Flexible Frontend: Use any frontend framework or library to create dynamic web pages.
  • Database Integration: Seamlessly integrates with popular databases like SQL Server, PostgreSQL, and MySQL.
  • Extensible: Easily extend and customize functionalities with plugins and modules.

Getting Started

Prerequisites

  • .NET Core SDK
  • A supported database (SQL Server, PostgreSQL, MySQL)
  • Node.js (optional, for frontend development)

Installation

  1. Clone the Repository

    git clone https://github.com/your-repo/fluent-cms.git
    cd fluent-cms
  2. Set Up the Database

    • Create a new database in your preferred database server.
    • Set the connection string in your environment variables:
      export ConnectionStrings__DefaultConnection="YourDatabaseConnectionString"
  3. Build and Run the Application

    dotnet build
    dotnet run
  4. Access the CMS Open your browser and navigate to http://localhost:5000 to access the Fluent CMS.

Configuration

Fluent CMS uses a schema definition file to generate APIs and web pages. You can find the schema definition in schema.json. Here’s an example:

{
  "Entities": {
    "Article": {
      "Title": "string",
      "Content": "string",
      "PublishedDate": "datetime",
      "Author": "string"
    }
  }
}

Update the schema.json file to define your entities and their attributes. Fluent CMS will automatically generate the necessary APIs and web pages based on this schema.

Basic Usage

Creating an Entity

To create a new entity, add it to the schema.json file:

{
  "Entities": {
    "Product": {
      "Name": "string",
      "Description": "string",
      "Price": "decimal",
      "InStock": "boolean"
    }
  }
}

Accessing APIs

Once your schema is defined, Fluent CMS generates the following endpoints for each entity:

  • GET /api/{entity}: Retrieve all items
  • GET /api/{entity}/{id}: Retrieve a single item by ID
  • POST /api/{entity}: Create a new item
  • PUT /api/{entity}/{id}: Update an existing item by ID
  • DELETE /api/{entity}/{id}: Delete an item by ID

Customizing the Frontend

Fluent CMS does not enforce any specific frontend framework. You can use React, Angular, Vue, or any other library to build your user interface. Simply make HTTP requests to the generated APIs to interact with your data.

Contributing

We welcome contributions from the community! To contribute:

  1. Fork the repository
  2. Create a new branch for your feature or bugfix
  3. Make your changes
  4. Submit a pull request

Support

If you encounter any issues or have questions, please check the FAQ or open an issue.


Feel free to customize this wiki homepage to better fit your specific Fluent CMS implementation and additional features.

Clone this wiki locally