Skip to content

DurianPy-Davao-Python-User-Group/durianpy-cms

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

82 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🍈 DurianPy CMS

DurianPy CMS is the central "Source of Truth" for the DurianPy ecosystem. Built on Payload CMS, it provides a unified, enterprise-grade backend to power the DurianPy Website and all subsequent projects and microservices.

🎯 Purpose & Vision

DurianPy CMS is designed to be a headless content hub. By centralizing our data—from blog posts and site layouts to user roles and global configurations—we ensure consistency across all our digital touchpoints while providing our engineering and content teams with a powerful, flexible interface.

  • Centralized Content: One dashboard to manage all DurianPy assets.
  • API-First: Content delivered via highly-performant REST and GraphQL endpoints.
  • Enterprise Ready: Built-in access control, audit logs (versions), and scalable AWS-backed infrastructure.

🚀 Quick Start

Development Setup (DevContainers)

We strongly enforce using DevContainers to ensure a consistent environment across all machines.

  1. Review the Prerequisites by OS.
  2. Follow the IDE Setup Guide to open the project in your container.
  3. Once inside the container, follow the Running the Project guide to install dependencies, initialize git hooks, and start the local server.

Note: Manual OS setup (without DevContainers) is the "Forbidden Path" and is strictly unsupported. See the warning here if you must proceed at your own risk.


🛠️ Developer Workflow

To maintain code quality and a clean commit history, all contributors must follow our established workflows.

📖 Workflow Documentation

Please read our comprehensive Developer Workflow Guide before contributing. It covers:

  • Adding new collections.
  • Creating data seeders.
  • Guidelines on when to use database migrations.

🌿 Git Branching Strategy

Naming convention: <type>/<ticket-id>-task-title

  • feat/DP-123-add-custom-blocks
  • fix/DP-456-fix-media-upload
  • chore/update-dependencies

✍️ Commit Message Standards

We strictly follow Conventional Commits. Our hooks will reject non-compliant messages (e.g., feat: implement user profiles).

🔄 Staying Synchronized

Keep your branch updated with main:

git fetch origin
git rebase origin/main -r

📋 Git Lifecycle Summary

  1. Ticket: Get assigned to a task.
  2. Branch: git checkout -b <type>/<ticket-id>-title.
  3. Setup: npm i && npx prek install --hook-type pre-commit --hook-type commit-msg --prepare-hooks.
  4. Code: Implement changes & follow Conventional Commits.
  5. PR: Push and create a Pull Request on GitHub.

🏗️ Architecture & Operations

📦 Key Components

  • Payload Config: Custom-tailored in src/payload.config.ts.
  • Infrastructure: AWS+GCP-backed serverless architecture (ECR, Lambda, SSM, S3, Firestore).
  • Database: MongoDB (managed via @payloadcms/db-mongodb and hosted through Firestore).
  • Storage: AWS S3 (managed via @payloadcms/storage-s3).

📚 Resources & Documentation

💬 Support

For assistance, contact the DurianPy Engineering Leads.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors