Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/mastercloudapps-projects/twitterscheduler

Applying Feature Toggles and Branch By Abstraction in Trunk-Based Development Java project with Hexagonal Architecture and Domain Driven Design
https://github.com/mastercloudapps-projects/twitterscheduler

ddd docker feature-toggles flyway github-actions h2-database heroku heroku-postgres hexagonal-architecture java junit5 openapi restful-api spring-boot spring-data-jpa spring-security togglz trunk-based-development

Last synced: about 1 month ago
JSON representation

Applying Feature Toggles and Branch By Abstraction in Trunk-Based Development Java project with Hexagonal Architecture and Domain Driven Design

Awesome Lists containing this project

README

        

[![License badge](https://img.shields.io/badge/license-Apache2-green.svg)](http://www.apache.org/licenses/LICENSE-2.0)
![push main workflow](https://github.com/MasterCloudApps-Projects/TwitterScheduler/actions/workflows/push-main.yml/badge.svg)

![][TwitterScheduler Logo]

# Twitter Scheduler

This project was born as a Master's Dissertation, it is based in the implementation of an application using Trunk-based development with two new features applying Feature toggles and Branch by abstraction design techniques.

Application has been implemented with Java 11 using Spring Boot and following a hexagonal architecture applying Domain Driven Design, it provides the capacity to schedule the publication of tweets in [Twitter](https://twitter.com/) social network in this account: [BlueOcean_TFM](https://twitter.com/BlueOcean_TFM)

On every commit, a GitHub actions workflow is executed, running unitary and integration tests, publishing the docker image in [DockerHub repository](https://hub.docker.com/repository/docker/drojo/twitter-scheduler-tfm) and deploying the application in [Heroku](https://twitter-scheduler-tfm.herokuapp.com/) (credentials needed), also a pair of smoke tests are executed in order to confirm that the application has been successfully deployed.

![][TwitterScheduler App]

Sections:

- [Continuous integration/Continuous Deployment](docs/technical-documentation/ci-cd.md)
- [Initial implementation](docs/technical-documentation/initial-implementation.md)
- Features:
- [Publish on demand](docs/technical-documentation/feature-publish-on-demand.md)
- [Tweets with images](docs/technical-documentation/feature-tweets-with-images.md)
- [Running TwitterScheduler locally](docs/technical-documentation/running-twitter-scheduler-locally.md)

Following additional resources are available:

* 📖 [Essay (Spanish)](docs/essay/memoria-twitter-scheduler.pdf)
* 🖼 [Slides (Spanish)](docs/slides/presentacion-twitter-scheduler.pdf)

## Contact

Twitter: [@davidrojoa](https://twitter.com/davidrojoa)

[TwitterScheduler Logo]: docs/technical-documentation/images/twitter-scheduler-logo.png
[TwitterScheduler App]: docs/technical-documentation/images/twitter-scheduler-pro.png