This is an app that allow users to join a conversation about a topic that others can publish or even himself.
Technologies and features
- Serverless - Serverless deployment
- React js - Web Framework
- AWS lambda
- AWS DynamoDB
- AWS API gateway
- AWS SNS
- AWS X-RAY
- AWS S3
- Auth0
- Ws and HTTPS communications
This is my capstone project of cloud developer nanodegree at Udacity. As a user, you can register to the app with a nickname and a picture, and then post any topic that you want to discuss or add a comment to an existing one. Inside each topic, you can see a list of relative comments and who has posted it. In the users area, topics can be deleted or renamed.
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
First, you need to install node js, serverless and AWS cli. You will also need an AWS account.
You can launch serverless stack with this command
sls deploy -v
Copy the https id and ws id in the given output to /front/config.js. This will connect frontend client with the services deployed in AWS.
For the frontend part, you need to install the list of dependenciesv first.
cd front
npm i
And then start the client.
npm run start
There are 4 dbs: users, topics, comments and connections. When a user uploads a profile picture, S3 saves it and notifies by SNS message to a resize function that scales down the picture. When a new topic is created, it sends a ws message that tells every connected users that they have to update their topics list, so the new one can be seen.