A web-based CMS (content management system) system that allows users to create websites, manage, and publish digital content without needing extensive technical knowledge. Users can create websites and edit content through a user-friendly interface, and the system manages the storage, retrieval, and presentation of content on the website.
- Website builder
- Interface
- Contact form (curretly one, plans on creating several types of forms)
- Page
- included meta tags
- Templates
- Flexible layout options
- Content creation
- article
- included meta tags
- categories
- author
- for meta
<meta name="author" content="John Doe">
- for meta
- article
- Editing
- Organization
- Publishing
- User authentication
- User roles and permissions
- Account management
Frontend:
- Nuxtjs
- CSS/Sass
- Expressjs
Backend:
- GO
Database:
- PostgreSQL
Container:
- Docker
Go application following the Hexagonal Architecture with a structure similar to Spring Boot's layers
├── cmd
│ └── main.go
├── internal
│ ├── application
│ │ ├── service.go
│ ├── adapter
│ │ ├── inbound
│ │ │ ├── http
│ │ │ │ └── handler.go (Equivalent to Controller)
│ │ ├── outbound
│ │ │ └── persistence
│ │ │ └── repository.go (Equivalent to Repository)
│ ├── domain
│ │ └── model.go (Equivalent to Model)
│ └── config
│ └── appconfig.go
└── test
├── unit_tests
└── end_to_end_tests
In this structure:
cmd
: Contains the main executable code (main.go
) for the application.internal
: Contains internal packages/modules that are not intended to be used by external packages. This includesapplication
,adapter
,domain
, andconfig
.application
: Contains business logic or services (service.go
).adapter
: Contains adapters for inbound and outbound communication.inbound
: Contains adapters for handling incoming requests, such as HTTP handlers (handler.go
, equivalent to Controller).outbound
: Contains adapters for external systems, such as database repositories (repository.go
, equivalent to Repository).
domain
: Contains domain-specific logic and models (model.go
, equivalent to Model).config
: Contains configuration files or structures (appconfig.go
).
test
: Contains test-related code, including unit tests, integration tests, and test utilities.unit_tests
: Testing individual components or units of code in isolation.end_to_end_tests
: Testing the application's behavior across multiple components or systems. Tests user scenarios and interactions with the entire application.
Date | Version | Description of Changes | Author |
---|---|---|---|
2024-04-26 | 1.0 | Initial draft of document | @minierparedes |
2024-04-30 | 1.1 | Creat C4 Model Diagrams | @minierparedes |
2024-04-30 | 1.1 | Create API specification/project structure | @minierparedes |
2024-05-01 | 1.2 | TODO: website creation: static vs SPA | @minierparedes |
2024-05-01 | 1.2 | TODO: C4 Model Diagrams: sequence | @minierparedes |
2024-05-02 | 1.2 | scenario walkthough | @minierparedes |
2024-05-10 | 1.2 | frog-blossom-db schema v.4 | @minierparedes |