This project is an example of Configuration Driven Development (CDD). This accompanies Andrew and Ram's talk Configuration Based Development Approach - Andrew Evans & Ram Ramkumar w/CapTech.
For a copy of our presentation please see the "presentation" folder in this project.
This project also has an accompanying set of APIs that are hosted as Azure Functions. To see those in action, please check out the repo boardwalk.
This project has multiple branches that show how you can iterate from a "traditonal" project over to one that is done with CDD.
- branch
master
is the final product with CDD - branch
level-0
is a basic project with no CDD - branch
level-1
is a refactor of the project available atlevel-0
to include the addition of some modular components and the start of CDD - branch
level-2
is a final refactor oflevel-0
with full use of CDD
This project uses Azure Functions and Cosmos DB as the backend. Please go to our project boardwalk for the source code for those.
To run this project with a backend, you'll need to deploy the project's functions to Azure (or at least run them locally). Either way, once you have the functions running locally or deployed in Azure, you'll need to add the API prefix (base URL for your functions) to the file at /src/index.js
as you see here:
// when your backend is deployed, here is where you put the API prefix
const DEV_API_PREFIX = "<YOUR_API_PREFIX_GOES_HERE>";
const initialState = {};
const { persistor, store } = configureStore(initialState);
axios.interceptors.request.use(
function (config) {
config.url = DEV_API_PREFIX + config.url;
return config;
},
function (error) {
return Promise.reject(error);
}
);
beach1.jpg
was found herebeach3.jpg
was found herebeach4.jpg
was found herebeach5.jpg
was found herebeach6.jpg
was found herebeach7.jpg
was found herebeach8.jpg
was found herebeach9.jpg
was found [here
In addition to everyone that attended our meetup, we also want to give a special shoutout to Patrick Youells for introducing us to the CDD concept! The methods used in this project draw inspiration from work we have done on previous projects together.