Since I am a full time student and have a job lined up after graduation I am able to devote a decent amount of time to this class. This is great because our Craigslist clone project has the potential to have many cool features added to it. However, the first priority is getting the project requirements met, and ensuring all the team members have a task they are working on completing.
For this project we are using a serverless architecture. This makes it easier to separate concerns and we can work individually/in pairs on various small parts of the project. Currently we have the project backend split into an items lambda function and database, as well as a messages lambda function and database. Both services will use the same Cognito user information but besides that they are mostly independent. This also means if one of these micro-services was to break for some reason, the rest of the app would (theoretically) still work.
Since our architecture is all pay per use with a large free tier, we are able to scale our application a lot before needing to pay for it. For this project, the entirety of the development work will be free. Since we are using CDK to define our infrastructure as code we will all have identical apps we can develop in our own AWS accounts. There should be minimal work to configure our apps outside of the CDK deployment. One thing I’ve already done is instructions for creating a settings file to connect the frontend with API gateway and Cognito. The settings file is straightforward to create and I believe everyone on the team has accomplished this task.
A piece of work that I will start on this week that needs to happen outside the CDK code is configuring Google as a social sign on provider. There are some guides on how to do this and I will research them and write detailed instructions in the readme so the rest of my project members can do the same. After this, there should be nothing else to do for project configuration and infrastructure deployment outside of the CDK code.
I really like working with AWS and defining the infrastructure as code. Seeing a stack get deployed then exploring the created infrastructure in the AWS console is really cool. And since it is all defined as code we are able to share infrastructure changes. Also, doing it this way would let us deploy our infrastructure in a different part of the globe almost immediately if our app gets really popular 🙂