An AI-powered Full-stack Chat Application with secure authentication, persistent chat history, and intelligent conversations powered by Google Gemini API.
Built with React, Node.js, PostgreSQL, and deployed on Microsoft Azure using GitHub Actions CI/CD.
- π€ AI-powered conversations using Google Gemini API
- π Secure JWT Authentication
- π¬ Persistent Conversation History
- π€ User & Admin Dashboard
- π‘ Role-Based Authorization
- β Cloud-native deployment on Microsoft Azure
- β Automated CI/CD with GitHub Actions
- π± Fully Responsive Design
- π Dark / Light Theme
- β‘ Smart Error Handling & Rate Limiting
The application follows a cloud-native architecture on Microsoft Azure with automated CI/CD using GitHub Actions.
- React + Vite frontend hosted on Azure Static Web Apps.
- Node.js + Express backend deployed on Azure Container Apps.
- Azure Database for PostgreSQL stores users, conversations, and messages.
- Azure Key Vault securely manages application secrets.
- Application Insights collects logs and telemetry.
- Google Gemini API provides AI-powered responses.
- GitHub Actions automates CI/CD deployments.
MiniChatGPT
β
βββ frontend/
β βββ src/
β βββ public/
β βββ package.json
β
βββ backend/
β βββ src/
β βββ package.json
β βββ Dockerfile
β
βββ database/
β βββ mini_chatgpt.sql
β
βββ .github/
β βββ workflows/
β
βββ README.md
DATABASE_URL=
JWT_SECRET=
GEMINI_API_KEY=
GEMINI_MODEL=
CLIENT_ORIGIN=
NODE_ENV=productionVITE_API_BASE_URL=git clone https://github.com/vuth9808/MiniChatGPT_Main.gitcd backend
npm install
npm run devcd frontend
npm install
npm run dev| Method | Endpoint |
|---|---|
| POST | /register |
| POST | /login |
| POST | /logout |
| Method | Endpoint |
|---|---|
| GET | /conversations |
| POST | /conversations |
| GET | /conversations/:id |
| DELETE | /conversations/:id |
| POST | /conversations/:id/messages |
| Method | Endpoint |
|---|---|
| GET | /users |
| DELETE | /users/:id |
- JWT Authentication
- Password Hashing with bcrypt
- Parameterized SQL Queries
- Role-Based Authorization
- CORS Protection
- Rate Limiting
- Secure Cookies
The application is automatically deployed through GitHub Actions.
GitHub
β
βΌ
GitHub Actions
β
ββββββ΄βββββ
βΌ βΌ
Azure Static Web Apps
Azure Container Apps
β
βΌ
Azure Database for PostgreSQL
Every push to the main branch automatically triggers the deployment pipeline.
This project is licensed under the MIT License.
To Hoang Vu





