In this guide, we'll walk through how to build a backend system for a creative agency using Xano, a no-code platform. The system will allow clients to create projects, upload assets, and submit them for the agency's review. The agency can then accept the project, upload their own assets, and mark the project as complete. Let's get started!
The first step is to create a data model to represent the project and its associated data. In Xano, you can do this by navigating to the "Data" section and creating a new table.
title (Text)customer (Link to User table)creativeID (Link to User table)state (Enum with values: "draft," "pending," "accepted," "complete")customerAttachments (List of File attachments)creativeAttachments (List of File attachments)The state field represents the current stage of the project, while the customerAttachments and creativeAttachments fields store the files uploaded by the client and the agency, respectively.
Next, you'll need to create API endpoints to handle the various actions in the project lifecycle. In Xano, you can do this by navigating to the "APIs" section and creating new API groups and endpoints.
title and customer (linked to the authenticated user).state to "draft" by default.This endpoint allows clients to create a new project in the "draft" state, with just a title and their user ID.
customer is equal to the authenticated user and state is "draft."This endpoint displays a list of the client's draft projects.
projectID and a fileResource (file upload) as input.customer matches the authenticated user.fileResource to a file attachment metadata object.customerAttachments list.This endpoint allows clients to upload files to their draft projects.
projectID as input.customer matches the authenticated user.state to "pending."This endpoint allows clients to submit their draft project for the agency's review by marking it as "pending."
state is "pending."This endpoint displays a list of pending projects for the agency to review.
projectID as input.state is "pending."state to "accepted" and assigning the creativeID to the authenticated user.This endpoint allows the agency to accept a pending project and assign themselves as the creative team for that project.
projectID and a fileResource (file upload) as input.creativeID matches the authenticated user.fileResource to a file attachment metadata object.creativeAttachments list.This endpoint allows the agency to upload files to an accepted project.
projectID as input.creativeID matches the authenticated user and the state is "accepted."state to "complete."This endpoint allows the agency to mark a project as complete once they have finished their work.
customer is equal to the authenticated user and state is "complete."This endpoint displays a list of completed projects for the client to review and download the final assets.
As you create each endpoint, you can use Xano's built-in "Run and Debug" feature to test it with sample data. You can also use the Swagger documentation to test the endpoints with different input values and see the responses.
Finally, you can save your project as a "Snippet" in Xano, which allows you to share it with others or quickly spin up a new instance of the project. We've included a link to the Snippet for this project below, so you can try it out and experiment with it yourself.
[Link to Snippet]
Congratulations! You've now built a fully functional backend system for a creative agency project management workflow using Xano's no-code platform. Feel free to customize and extend this project to fit your specific needs.
Join 100,000+ people already building with Xano.
Start today and scale to millions.
Start building for free