Files

115 lines
2.3 KiB
Markdown

# Pezkuwi Telegram Mini App
Telegram Mini App for Pezkuwichain - Forum, Announcements, Rewards, and Wallet integration.
## Tech Stack
- **Frontend**: React 18 + TypeScript + Vite
- **Styling**: Tailwind CSS + shadcn/ui patterns
- **State**: TanStack Query (React Query)
- **Backend**: Supabase (PostgreSQL + Auth + Edge Functions)
- **Testing**: Vitest + Testing Library
- **CI/CD**: GitHub Actions
## Getting Started
### Prerequisites
- Node.js >= 18
- npm >= 9
- Supabase account
### Installation
```bash
# Clone the repo
git clone https://github.com/pezkuwichain/pezkuwi-telegram-miniapp.git
cd pezkuwi-telegram-miniapp
# Install dependencies
npm install
# Copy environment template
cp .env.example .env
# Add your Supabase credentials to .env
```
### Development
```bash
# Start dev server
npm run dev
# Run tests
npm run test
# Type check
npm run typecheck
# Lint
npm run lint
# Format code
npm run format
# Full validation (typecheck + lint + test + build)
npm run validate
```
### Build
```bash
npm run build
```
Output will be in `dist/` directory.
## Project Structure
```
src/
├── contexts/ # React contexts (Auth)
├── hooks/ # Custom hooks (Supabase, Telegram)
├── lib/ # Utilities (env, supabase client)
├── sections/ # Main app sections
│ ├── Announcements.tsx
│ ├── Forum.tsx
│ ├── Rewards.tsx
│ └── Wallet.tsx
├── test/ # Test setup
├── types/ # TypeScript types
├── App.tsx # Main app component
└── main.tsx # Entry point
```
## Database Schema
Tables (prefixed with `tg_` to avoid conflicts):
- `tg_users` - Telegram users
- `tg_announcements` - Admin announcements
- `tg_announcement_reactions` - Like/dislike reactions
- `tg_threads` - Forum threads
- `tg_thread_likes` - Thread likes
- `tg_replies` - Thread replies
- `tg_reply_likes` - Reply likes
## Environment Variables
| Variable | Description |
| ------------------------ | ------------------------ |
| `VITE_SUPABASE_URL` | Supabase project URL |
| `VITE_SUPABASE_ANON_KEY` | Supabase anon/public key |
## Telegram Setup
1. Create bot via @BotFather
2. Enable Mini App in bot settings
3. Set Mini App URL to deployment URL
4. Deploy `telegram-auth` Edge Function to Supabase
## License
MIT