Serverless Notes App Project Report
Project Title
Serverless Notes App using AWS Lambda, API Gateway & DynamoDB
Objective
To create a lightweight serverless web API that allows users to add, retrieve, and delete notes using
AWS Lambda, API Gateway, and DynamoDB - with no servers to manage.
Tools & Services Used
- AWS Lambda
- API Gateway
- DynamoDB
- IAM Roles
- AWS CLI or Console
Architecture
Client (Postman / App)
|
API Gateway (REST)
|
Lambda Functions (AddNote, GetNote, DeleteNote)
|
DynamoDB Table (Notes)
Step-by-Step Setup Guide
1. Create a DynamoDB Table
- Table name: Notes
- Primary key: noteId (String)
2. Create Lambda Functions:
- AddNoteFunction
- GetNoteFunction
- DeleteNoteFunction
Sample AddNote Lambda Code:
import boto3
import uuid
def lambda_handler(event, context):
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('Notes')
note_id = str(uuid.uuid4())
note_content = event['note']
table.put_item(Item={'noteId': note_id, 'note': note_content})
return {
'statusCode': 200,
'body': f'Note saved with ID: {note_id}'
}
3. Set IAM Role for Lambda (AmazonDynamoDBFullAccess)
4. Create API Gateway:
- Resources: /add, /get, /delete
- Connect to Lambda
- Enable CORS & deploy
5. Test with Postman:
- POST /add {"note": "Buy milk"}
- GET /get?noteId=...
- DELETE /delete?noteId=...
Expected Output
- Add: Returns note ID
- Get: Returns note content
- Delete: Confirms deletion
How to Describe in Interview
I built a fully serverless note-taking API using AWS Lambda and DynamoDB. I used API Gateway to
expose RESTful endpoints, and each Lambda function handled a specific operation like adding or
retrieving notes. This project helped me understand event-driven architecture, NoSQL design, and
how to create scalable apps without managing servers.