mirror of
https://github.com/pezkuwichain/pezkuwi-telegram-miniapp.git
synced 2026-04-21 23:37:55 +00:00
115 lines
2.3 KiB
Markdown
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
|