Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/mastercloudapps-projects/twitterscheduler
- Owner: MasterCloudApps-Projects
- License: apache-2.0
- Created: 2021-07-22T08:33:49.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2021-12-14T11:35:19.000Z (about 3 years ago)
- Last Synced: 2023-03-10T16:28:49.160Z (almost 2 years ago)
- Topics: 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
- Language: Java
- Homepage:
- Size: 9.46 MB
- Stars: 2
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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