Financial management system for South African businesses
# CEO AI - Financial Management System
A comprehensive financial management application designed for South African small businesses, featuring automated transaction tracking, compliance calendar, cash flow analysis, and real-time financial insights.
## Features
- **Financial Dashboard** - Real-time metrics including revenue, expenses, net profit, and tax estimates
- **Transaction Management** - Easy entry, categorization, and filtering of financial transactions
- **Compliance Calendar** - SARS and CIPC deadline tracking with automated reminders
- **Cash Flow Analysis** - Visual charts showing income vs expenses trends
- **User Authentication** - Secure login with role-based access control (Admin/User)
- **Responsive Design** - Optimized for desktop and mobile devices
- **Dramatic UI** - Modern cinematic design with teal and burnt orange aesthetics
## Tech Stack
- **Frontend**: React 19, Tailwind CSS 4, TypeScript
- **Backend**: Express.js, tRPC, Node.js
- **Database**: MySQL/TiDB with Drizzle ORM
- **Authentication**: OAuth 2.0
- **Deployment**: Railway.app
## Getting Started
### Prerequisites
- Node.js 18+
- pnpm (or npm/yarn)
- MySQL database
### Installation
1. Clone the repository:
```bash
git clone
cd ceo-ai-financial
```
2. Install dependencies:
```bash
pnpm install
```
3. Set up environment variables:
```bash
cp .env.example .env
```
4. Run database migrations:
```bash
pnpm drizzle-kit generate
pnpm drizzle-kit migrate
```
5. Seed sample data (optional):
```bash
node seed-db.mjs
```
6. Start development server:
```bash
pnpm dev
```
The app will be available at `
localhost`
## Deployment to Railway
### Quick Deploy (Recommended)
1. Go to Railway.app
2. Click **"New Project"** → **"Deploy from GitHub"**
3. Select this repository
4. Railway will automatically detect the Node.js setup
5. Configure environment variables in Railway dashboard
6. Deploy!
### Environment Variables Required
- `DATABASE_URL` - MySQL connection string
- `J …