# Amharic AI Assistant
A web-based AI assistant for Amharic speakers. Ask questions in Amharic and receive responses in Ethiopic script (ፊደል).
## Some Images :-
## Stack
- **Frontend:** Next.js, TypeScript, TailwindCSS, Zustand, Better Auth client
- **Backend:** NestJS, Prisma, PostgreSQL, Better Auth, Google Gemini AI
- **Deployment:** Vercel (frontend), Railway (backend + database)
## Project structure
```
Amharic-AI/
├── frontend/ # Next.js app (port 3000)
├── backend/ # NestJS API (port 4000)
└── .env.example
```
## Prerequisites
- Node.js 20+
- PostgreSQL (local install)
- Google Gemini API key (free from Google AI Studio)
## Setup
### 1. Database
Create a PostgreSQL database:
```sql
CREATE DATABASE amharic_ai;
```
### 2. Backend
```bash
cd backend
cp ../.env.example .env
# Edit .env with your DATABASE_URL, BETTER_AUTH_SECRET, OPENAI_API_KEY
npm install
npx prisma migrate dev --name init
npm run start:dev
```
Backend runs at `
localhost`.
**Postman testing:** See backend/docs/POSTMAN.md for all endpoints, bodies, and expected responses.
### 3. Frontend
```bash
cd frontend
cp ../.env.example .env.local
# Uses NEXT_PUBLIC_API_URL=
localhost by default
npm install
npm run dev
```
Frontend runs at `
localhost`.
## Environment variables
See .env.example for all required variables.
| Variable | Where | Description |
|----------|-------|-------------|
| `DATABASE_URL` | backend | PostgreSQL connection string |
| `BETTER_AUTH_SECRET` | backend | Random 32+ character secret |
| `BETTER_AUTH_URL` | backend | Backend URL in dev (`
localhost`) |
| `GEMINI_API_KEY` | backend | Free key from Google AI Studio |
| `AI_PROVIDER` | backend | `gemini` (default) or `openai` |
| `OPENAI_API_KEY` | backend | Only if `AI_PROVIDER=openai` |
| `FRONTEND_URL` | backend | Frontend origin for CORS |
| `NEXT_PUBLIC_API_URL` | frontend | Backend API URL |
## Features
- Register / login / logout (Better Auth)
- Mul …