# Rwanda USSD Application
A USSD application for Rwanda that provides ticket buying and car marketplace services in both English and Kinyarwanda languages.
## Features
- Bilingual support (English and Kinyarwanda)
- Multi-level menu navigation
- Bus, event, and flight ticket purchasing
- Car marketplace for browsing and selling cars
- MySQL database integration for data persistence
## Technical Stack
- Node.js
- Express.js
- MySQL database
- Africa's Talking USSD API
- Hosted on Render
## Setup and Installation
1. Clone the repository:
```bash
git clone
github.com
cd rwanda-ussd-app
```
2. Install dependencies:
```bash
npm install
```
3. Create a `.env` file with the following variables:
```
PORT=3000
AFRICAS_TALKING_API_KEY=your_api_key_here
AFRICAS_TALKING_USERNAME=your_username_here
DB_HOST=localhost
DB_USER=root
DB_PASSWORD=your_password_here
DB_NAME=rwanda_ussd
```
4. Initialize the database:
```bash
npm run init-db
```
5. Start the application:
```bash
npm start
```
## Database Schema
The application uses a MySQL database with the following tables:
- `bus_tickets`: Stores bus ticket information
- `event_tickets`: Stores event ticket information
- `flight_tickets`: Stores flight ticket information
- `cars`: Stores car listings information
- `bookings`: Records ticket bookings
- `users`: Stores user information
## Deployment to Render
1. Create a new Web Service on Render
2. Connect your GitHub repository
3. Use the following settings:
- Build Command: `npm install && npm run init-db`
- Start Command: `npm start`
4. Add the environment variables in the Render dashboard
5. Set up a MySQL database (you can use Render's database service or an external provider)
## Africa's Talking Configuration
1. Log in to your Africa's Talking account
2. Create a new USSD service
3. Set the callback URL to your Render deployment URL + `/ussd` (e.g., `
your-app.onrender.com`)
4. Use the provided service code whe …