Project Overview
This project showcases the development and deployment of
a high-performance AI chat application built for complex user
interactions and scalability.
It moves beyond typical chatbots by introducing a unique
conversational branching feature, integrating leading AI models
(GPT-4o and GPT-4o mini), and leveraging robust, modern software
architecture and DevOps practices.
The platform demonstrates the ability to build and manage
resilient, maintainable web applications, connecting sophisticated
backend logic with a dynamic frontend and automated deployment
workflows.
Key Technologies
- Backend: ASP.NET Core, C#
-
Frontend: React, TypeScript, React Router
-
Architecture: Microservices, Domain-Driven
Design (DDD), Clean Architecture
-
Database: PostgreSQL with Entity Framework Core
(including migrations)
-
Infrastructure & DevOps: Docker, Kubernetes
(K8s) managed via Helm, GitHub Actions (CI/CD), Virtual Machines
-
APIs & Services: OpenAI API (GPT-4o, GPT-4o
mini), Stripe API
Backend Architecture and Implementation
The backend uses a Microservices design for clear
separation and independent scaling. Two main services drive the
application:
Authentication Service: A dedicated microservice
handling user sign-up, login, and email verification. It's built
using Domain-Driven Design (DDD) to accurately model
authentication logic and Clean Architecture to keep
business rules separate from infrastructure details like database
access or email sending. This makes the service focused and easier
to maintain.
Core Chat Service: This service powers all
primary chat functions: saving messages and chats, managing the
unique conversation branching, interacting with OpenAI, and
handling subscriptions via Stripe. DDD is heavily used here
to manage the complexity of conversations, messages, and branching
states effectively. Clean Architecture ensures the core
logic is independent of external frameworks or databases,
promoting testability and flexibility.
Data persistence for user information and chat history is handled
by PostgreSQL, accessed efficiently using
Entity Framework Core. Database schema changes are managed
systematically through EF Core migrations.
Frontend User Interface
The UI is built with React and TypeScript, creating
a type-safe, component-based structure that's easier to scale and
refactor. Key features include:
On-the-Fly Model Switching: Users can instantly
swap between GPT-4o and GPT-4o mini during a conversation,
choosing the best AI tool (balancing capability and potential
cost/speed) for the current task.
Full Conversational Control: The core innovation
is the non-linear chat management: Users can regenerate responses,
edit any previous message (theirs or the AI's), and instantly
create a new conversational path. This preserves the original
history while allowing exploration of "what-if" scenarios. The
system tracks all branches, letting users jump between timelines
effortlessly.
State Management: The React Context API is
used for managing global application state, efficiently handling
the complexities of multiple chat histories, branching logic, and
real-time UI updates.
Core Chat Functionality: Includes seamless user
authentication (connecting to the Auth service), chat creation,
message handling, and displaying conversations in real-time.
Deployment Automation and Infrastructure
The project utilizes modern DevOps practices for consistent and
automated deployments: A CI/CD pipeline in GitHub Actions
automates the entire process from code commit to deployment,
building the backend services and frontend app automatically.
Both backend microservices and the frontend are packaged as
Docker containers. This ensures they run identically
everywhere – locally, in testing, and in production.
The containerized applications are deployed to a
Kubernetes (K8s) cluster running on virtual machines.
Kubernetes manages the application's lifecycle, scaling, and
reliability. Helm is used to manage the Kubernetes
deployment configurations, making deployments and updates more
predictable and repeatable.
Conclusion
This AI Chat Platform project demonstrates practical expertise in
building sophisticated, full-stack web applications. It
effectively applies architectural patterns like Microservices,
Domain-Driven Design, and Clean Architecture to tackle complex
requirements, particularly the innovative chat branching feature.
The implementation showcases strong skills across the technology
stack (ASP.NET Core, React, TypeScript, PostgreSQL) and
proficiency in modern DevOps workflows (Docker, Kubernetes, Helm,
CI/CD). Ultimately, this project represents the capability to
engineer, deploy, and manage scalable, feature-rich applications
ready for real-world use.