Skip to content

Commit 83dcfd6

Browse files
author
gurekam
committed
LAP-30: Updated Readme.md and Design.md
1 parent 233c31c commit 83dcfd6

File tree

2 files changed

+107
-84
lines changed

2 files changed

+107
-84
lines changed

DESIGN.md

Lines changed: 76 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@
2424

2525
4. **Infrastructure Layer**
2626
- Containerization (Docker)
27-
- Orchestration (Kubernetes)
28-
- Monitoring
29-
- Logging
27+
- Orchestration (Amazon EKS)
28+
- Monitoring (AWS CloudWatch)
29+
- Logging (AWS CloudWatch Logs)
3030

3131
### Communication Flow
3232

@@ -39,8 +39,8 @@
3939
2. **Inter-Service Communication**
4040
- Redis pub/sub for real-time updates
4141
- Database transactions
42-
- Service discovery
43-
- Load balancing
42+
- Service discovery (EKS)
43+
- Load balancing (AWS ELB)
4444

4545
## Sequence Diagrams
4646

@@ -244,12 +244,11 @@ spreadsheetApplication/
244244
│ ├── utils/ # Utility functions
245245
│ └── app.py # Main application
246246
├── frontend/ # User interface
247-
├── kubernetes/ # Deployment configurations
247+
├── kubernetes/ # EKS deployment configurations
248248
├── tests/ # Test suite
249249
├── database/ # Local database storage
250250
├── certs/ # SSL certificates
251-
├── .github/ # CI/CD workflows
252-
└── docs/ # Documentation
251+
└── docs/ # Documentation
253252
```
254253

255254
## Deployment Architecture
@@ -290,4 +289,72 @@ spreadsheetApplication/
290289
- Error notifications
291290
- Performance alerts
292291
- Security alerts
293-
- Capacity warnings
292+
- Capacity warnings
293+
294+
## Infrastructure Design
295+
296+
### Amazon EKS Architecture
297+
298+
1. **Cluster Configuration**
299+
- Managed node groups
300+
- Auto-scaling groups
301+
- Network policies
302+
- Security groups
303+
304+
2. **Deployment Strategy**
305+
- Rolling updates
306+
- Blue-green deployments
307+
- Canary releases
308+
- Rollback procedures
309+
310+
3. **Resource Management**
311+
- Resource quotas
312+
- Pod resource limits
313+
- Horizontal Pod Autoscaling
314+
- Vertical Pod Autoscaling
315+
316+
4. **Monitoring & Logging**
317+
- CloudWatch metrics
318+
- CloudWatch Logs
319+
- Prometheus integration
320+
- Grafana dashboards
321+
322+
### CI/CD Pipeline
323+
324+
1. **Source Control**
325+
- Git repository
326+
- Branch protection rules
327+
- Code review requirements
328+
- Automated testing
329+
330+
2. **Build Process**
331+
- Docker image building
332+
- Security scanning
333+
- Unit testing
334+
- Integration testing
335+
336+
3. **Deployment Process**
337+
- AWS CodePipeline integration
338+
- EKS deployment automation
339+
- Environment promotion
340+
- Rollback capabilities
341+
342+
## Development Workflow
343+
344+
1. **Issue Tracking**
345+
- Project management
346+
- Sprint planning
347+
- Bug tracking
348+
- Feature requests
349+
350+
2. **Code Management**
351+
- Git workflow
352+
- Branch naming convention (feature/description)
353+
- Commit message format (description)
354+
- Pull request process
355+
356+
3. **Quality Assurance**
357+
- Automated testing
358+
- Code review process
359+
- Performance testing
360+
- Security scanning

README.md

Lines changed: 31 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,6 @@ The Spreadsheet Application is a modern web-based solution for managing sales da
2626
- Session-based access control
2727
- Secure data transmission
2828

29-
- **Deployment Options**
30-
- Local development setup
31-
- Docker containerization
32-
- Kubernetes deployment
33-
- CI/CD pipeline integration
34-
3529
## Technology Stack
3630

3731
### Frontend
@@ -47,12 +41,11 @@ The Spreadsheet Application is a modern web-based solution for managing sales da
4741
- **Real-time**: Flask-SocketIO 5.3+
4842
- **Security**: Werkzeug 3.0+
4943

50-
### Development & Deployment
44+
### Infrastructure
5145
- **Containerization**: Docker
52-
- **Orchestration**: Kubernetes (Minikube)
53-
- **CI/CD**: GitHub Actions
54-
- **Code Quality**: Ruff, Pre-commit
55-
- **Environment**: Python 3.8+
46+
- **Orchestration**: Amazon EKS (Elastic Kubernetes Service)
47+
- **CI/CD**: AWS CodePipeline
48+
- **Monitoring**: AWS CloudWatch
5649

5750
## Getting Started
5851

@@ -61,8 +54,10 @@ The Spreadsheet Application is a modern web-based solution for managing sales da
6154
- Python 3.8 or higher
6255
- Redis server
6356
- Git
64-
- Docker (optional)
65-
- Minikube (optional)
57+
- UV Package Manager
58+
- AWS CLI configured with appropriate credentials
59+
- kubectl configured for EKS cluster
60+
- eksctl for cluster management
6661

6762
### Installation
6863

@@ -89,7 +84,7 @@ The Spreadsheet Application is a modern web-based solution for managing sales da
8984
```
9085

9186
4. **Configure Environment**
92-
Create a `.env` file with:
87+
Create a `.env` file in the root directory with:
9388
```bash
9489
FLASK_APP=backend.app
9590
FLASK_ENV=development
@@ -98,9 +93,9 @@ The Spreadsheet Application is a modern web-based solution for managing sales da
9893
REDIS_PORT=6379
9994
```
10095

101-
## Deployment Options
96+
### Running the Application
10297

103-
### Local Development
98+
#### Local Development
10499

105100
1. **Start Redis Server**
106101
```bash
@@ -119,33 +114,26 @@ The Spreadsheet Application is a modern web-based solution for managing sales da
119114
3. **Access Application**
120115
Open http://localhost:5000 in your browser
121116

122-
### Docker Deployment
117+
#### EKS Deployment
123118

124-
1. **Build Image**
119+
1. **Configure AWS CLI**
125120
```bash
126-
docker build -t spreadsheet-app .
121+
aws configure
127122
```
128123

129-
2. **Run Container**
124+
2. **Create EKS Cluster**
130125
```bash
131-
docker run -p 5000:5000 spreadsheet-app
126+
eksctl create cluster --name spreadsheet-app --region your-region --nodegroup-name standard-workers --node-type t3.medium --nodes 3 --nodes-min 1 --nodes-max 4 --managed
132127
```
133128

134-
### Kubernetes Deployment
135-
136-
1. **Start Minikube**
137-
```bash
138-
minikube start
139-
```
140-
141-
2. **Deploy Application**
129+
3. **Deploy Application**
142130
```bash
143131
kubectl apply -f kubernetes/
144132
```
145133

146-
3. **Access Application**
134+
4. **Access Application**
147135
```bash
148-
minikube service spreadsheet-app-service
136+
kubectl get svc spreadsheet-app-service
149137
```
150138

151139
## Project Structure
@@ -159,65 +147,33 @@ spreadsheetApplication/
159147
│ ├── utils/ # Utility functions
160148
│ └── app.py # Main application
161149
├── frontend/ # User interface
162-
├── kubernetes/ # Deployment configurations
163-
├── tests/ # Test suite
164-
├── database/ # Local database storage
165-
├── certs/ # SSL certificates
166-
├── .github/ # CI/CD workflows
167-
└── docs/ # Documentation
150+
├── kubernetes/ # EKS deployment configurations
151+
├── tests/ # Test suite
152+
├── database/ # Local database storage
153+
└── docs/ # Documentation
168154
```
169155

170156
## Database Management
171157

172158
The application uses DuckDB for data storage with the following features:
173-
- Local development: File-based storage
174-
- Production: Kubernetes persistent volume
159+
- File-based storage for local development
160+
- EKS persistent volume for production
175161
- Automatic schema management
176162
- Real-time data synchronization
177163

178-
## CI/CD Pipeline
179-
180-
The application uses GitHub Actions for continuous integration and deployment:
181-
182-
1. **Testing Phase**
183-
- Code linting and formatting
184-
- Unit and integration tests
185-
- Security scanning
186-
187-
2. **Build Phase**
188-
- Docker image creation
189-
- Image scanning
190-
- Push to Docker Hub
191-
192-
3. **Deployment Phase**
193-
- Kubernetes deployment
194-
- Health checks
195-
- Rollback capabilities
196-
197164
## Contributing
198165

199166
We welcome contributions! Please follow these steps:
200167

201-
1. Fork the repository
202-
2. Create a feature branch
203-
3. Make your changes
204-
4. Run tests and linting
205-
5. Submit a pull request
168+
1. Create a feature branch (`git checkout -b feature/feature-name`)
169+
2. Commit your changes (`git commit -m 'Add feature description'`)
170+
3. Push to the branch (`git push origin feature/feature-name`)
171+
4. Create a Pull Request
206172

207173
## License
208174

209-
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
175+
This project is licensed under the MIT License - see the LICENSE file for details.
210176

211177
## Support
212178

213-
For support, please:
214-
1. Check the [documentation](docs/)
215-
2. Open an issue on GitHub
216-
3. Contact the maintainers
217-
218-
## Acknowledgments
219-
220-
- Flask team for the web framework
221-
- Socket.IO for real-time capabilities
222-
- DuckDB for efficient data storage
223-
- Redis for session management
179+
For support, please contact the maintainers through the project's communication channels.

0 commit comments

Comments
 (0)