# prtyr ๐Ÿš€ [![Built with Cookiecutter Plone Starter](https://img.shields.io/badge/built%20with-Cookiecutter%20Plone%20Starter-0083be.svg?logo=cookiecutter)](https://github.com/collective/cookiecutter-plone-starter/) [![Black code style](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black) [![Backend Tests](https://github.com/sramirez/prtyr/actions/workflows/backend.yml/badge.svg)](https://github.com/sramirez/prtyr/actions/workflows/backend.yml) [![Frontend Tests](https://github.com/sramirez/prtyr/actions/workflows/frontend.yml/badge.svg)](https://github.com/sramirez/prtyr/actions/workflows/frontend.yml) A new project using Plone 6. ## Quick Start ๐Ÿ ### Prerequisites โœ… Ensure you have the following installed: - Python 3.11 ๐Ÿ - Node 20 ๐ŸŸฉ - yarn ๐Ÿงถ - Docker ๐Ÿณ ### Installation ๐Ÿ”ง 1. Clone the repository: ```shell git clone git@github.com:sramirez/prtyr.git cd prtyr ``` 2. Install both Backend and Frontend: ```shell make install ``` ### Fire Up the Servers ๐Ÿ”ฅ 1. Create a new Plone site on your first run: ```shell make create-site ``` 2. Start the Backend at [http://localhost:8080/](http://localhost:8080/): ```shell make start-backend ``` 3. In a new terminal, start the Frontend at [http://localhost:3000/](http://localhost:3000/): ```shell make start-frontend ``` Voila! Your Plone site should be live and kicking! ๐ŸŽ‰ ### Local Stack Deployment ๐Ÿ“ฆ Deploy a local `Docker Compose` environment that includes: - Docker images for Backend and Frontend ๐Ÿ–ผ๏ธ - A stack with a Traefik router and a Postgres database ๐Ÿ—ƒ๏ธ - Accessible at [http://prtyr.localhost](http://prtyr.localhost) ๐ŸŒ Execute the following: ```shell make stack-start make stack-create-site ``` And... you're all set! Your Plone site is up and running locally! ๐Ÿš€ ## Project Structure ๐Ÿ—๏ธ This monorepo consists of three distinct sections: `backend`, `frontend`, and `devops`. - **backend**: Houses the API and Plone installation, utilizing pip instead of buildout, and includes a policy package named prtyr. - **frontend**: Contains the React (Volto) package. - **devops**: Encompasses Docker Stack, Ansible playbooks, and Cache settings. ### Why This Structure? ๐Ÿค” - All necessary codebases to run the site are contained within the repo (excluding existing addons for Plone and React). - Specific GitHub Workflows are triggered based on changes in each codebase (refer to .github/workflows). - Simplifies the creation of Docker images for each codebase. - Demonstrates Plone installation/setup without buildout. ## Code Quality Assurance ๐Ÿง To automatically format your code and ensure it adheres to quality standards, execute: ```shell make format ``` Linters can be run individually within the `backend` or `frontend` folders. ## Internationalization ๐ŸŒ Generate translation files for Plone and Volto with ease: ```shell make i18n ``` ## Credits and Acknowledgements ๐Ÿ™ Crafted with care by **This was generated by [cookiecutter-plone-starter](https://github.com/collective/cookiecutter-plone-starter) on 2024-07-31 13:20:13**. A special thanks to all contributors and supporters!