Purpose: Academic full-stack development project demonstrating cloud deployment skills
Tech Stack:
- Backend: ASP.NET Core 8.0 (C#)
- Frontend: React 19 + TypeScript + Vite
- Database: SQL Server (AWS RDS)
- Cloud: AWS (ECS Fargate, S3, RDS)
- API Gateway: Google APigee
- Properties - Real estate listings with pricing, location, and features
- Realtors - Licensed agents managing property listings
- Users - End users with contact information and account status
- Complete CRUD operations for all entities
- RESTful API with Swagger/OpenAPI documentation
- Repository pattern for clean data access
- DTO-based API contracts with AutoMapper
- React web client for data visualization
graph TB
User[๐ค Web Browser]
subgraph "Frontend"
React[React App<br/>AWS S3]
end
subgraph "API Gateway"
Apigee[Google APigee]
end
subgraph "Backend - AWS"
API[ASP.NET Core API<br/>ECS Fargate]
subgraph "Database - AWS RDS"
Realtor[(Realtor)]
Property[(Property)]
UserEntity[(User)]
Realtor -->|"1:N manages"| Property
end
end
User --> React
React --> Apigee
Apigee --> API
API --> Realtor
API --> Property
API --> UserEntity
style User fill:#e1f5ff
style React fill:#61dafb
style Apigee fill:#0f9d58
style API fill:#512bd4
style Realtor fill:#ffd700
style Property fill:#ffd700
style UserEntity fill:#ffd700
erDiagram
REALTOR ||--o{ PROPERTY : manages
REALTOR {
int Id PK
string FirstName
string LastName
string Email
string PhoneNumber
string LicenseNumber
string Agency
int YearsOfExperience
string Specialization
bool IsActive
}
PROPERTY {
int Id PK
string Address
string City
string State
string ZipCode
decimal Price
int Bedrooms
int Bathrooms
int SquareFeet
string PropertyType
string Status
int RealtorId FK
datetime ListedDate
string Description
bool IsDeleted
}
USER {
int Id PK
string FirstName
string LastName
string Email
string PhoneNumber
string Address
datetime CreatedDate
bool IsActive
}
Relationship: One Realtor manages many Properties (1:N)
graph LR
subgraph "API Layers"
Controllers[Controllers<br/>HTTP Endpoints]
Repos[Repositories<br/>Data Access]
EF[Entity Framework<br/>Core]
end
Controllers --> Repos
Repos --> EF
EF --> Database[(SQL Server)]
style Controllers fill:#512bd4
style Repos fill:#0078d4
style EF fill:#68217a
style Database fill:#cc2927
Key Components:
- Controllers: PropertyController, RealtorController, UserController
- Repositories: Generic
IRepository<T>pattern for CRUD operations - Entity Framework Core: ORM for database access
- AutoMapper: DTO โ Entity mapping
- Global Error Handling: Centralized exception middleware
Technology:
- React 19.2.0 with TypeScript
- Vite 7.2.2 for fast builds
- Axios for API communication
- React Router for navigation
Key Features:
- Component-based architecture
- Type-safe API calls
- Responsive design
- Environment-based configuration
API Integration:
// Centralized API service
VITE_API_BASE_URL โ APigee Gateway โ Backend API| Service | Purpose |
|---|---|
| AWS S3 | Static website hosting for React app |
| AWS ECR | Docker container registry |
| AWS ECS Fargate | Serverless container hosting for API |
| AWS RDS | Managed SQL Server database |
| AWS IAM | Access management and security |
- Google APigee: API management, security, rate limiting, and monitoring
GET /api/properties- List all propertiesGET /api/properties/{id}- Get property by IDPOST /api/properties- Create new propertyPUT /api/properties/{id}- Update propertyPATCH /api/properties/{id}- Partial updateDELETE /api/properties/{id}- Delete property
GET /api/realtors- List all realtorsGET /api/realtors/{id}- Get realtor by IDPOST /api/realtors- Create new realtorPUT /api/realtors/{id}- Update realtorPATCH /api/realtors/{id}- Partial updateDELETE /api/realtors/{id}- Delete realtor
- Similar CRUD operations for User entity
graph LR
Code[Source Code] --> Build[Docker Build]
Build --> ECR[Push to ECR]
ECR --> ECS[Deploy to ECS]
ECS --> Live[Live API]
React[React Build] --> S3[Deploy to S3]
S3 --> Web[Live Website]
style Code fill:#333
style Build fill:#2496ed
style ECR fill:#ff9900
style ECS fill:#ff9900
style Live fill:#28a745
style React fill:#61dafb
style S3 fill:#ff9900
style Web fill:#28a745
Backend: Code โ Docker โ ECR โ ECS Fargate โ Production
Frontend: React Build โ S3 โ Static Website
โ Full-Stack Development
- Complete backend API with RESTful design
- Modern React frontend with TypeScript
โ Cloud Deployment
- Containerized API on AWS ECS Fargate
- Static hosting on AWS S3
- Managed database on AWS RDS
โ Best Practices
- Repository pattern for data access
- DTO pattern for API contracts
- Swagger/OpenAPI documentation
- Global error handling
- Environment-based configuration
โ API Gateway Integration
- Security and rate limiting via APigee
- Centralized API management
- Visual Studio / VS Code
- .NET CLI
- Entity Framework CLI
- Docker Desktop
- SQL Server Management Studio
- VS Code
- npm/Node.js
- Vite dev server
- React DevTools
- AWS CLI
- Docker
- PowerShell scripts for deployment
Available Documentation:
- API Documentation (Swagger UI)
- README files for setup instructions
- Deployment guides
- Troubleshooting guides
- Entity relationship diagrams
- Architecture diagrams
API Testing:
- Swagger UI for interactive testing
- Postman collections available
- Automated test scripts
- Backend Development: ASP.NET Core, Entity Framework, RESTful APIs
- Frontend Development: React, TypeScript, modern JavaScript
- Database Design: Relational modeling, migrations, SQL Server
- Cloud Computing: AWS services, containerization, serverless
- DevOps: Docker, CI/CD concepts, deployment automation
- API Management: APigee gateway integration
- Software Architecture: Layered architecture, design patterns
Potential Improvements:
- User authentication and authorization (JWT)
- Image upload for properties
- Advanced search and filtering
- Favorites and saved searches
- Email notifications
- Real-time updates with SignalR
- Mobile app (React Native)
- Analytics dashboard
- Integration with mapping services
Project Repository: [GitHub Link]
Live Demo:
- Frontend: [S3 Website URL]
- API: [APigee Gateway URL]
- API Docs: [Swagger URL]
Team Members: [Your Team Names]
Project Team:
- [Team Member 1] - [Role] - [Email]
- [Team Member 2] - [Role] - [Email]
- [Team Member 3] - [Role] - [Email]
Academic Supervisor: [Supervisor Name]
Course: [Course Name/Code]
Institution: [University Name]
Date: November 2025