A modern Telegram Web App built with Vue.js 3, featuring a comprehensive profile management system and beautiful UI design.
The app is automatically deployed to GitHub Pages: https://yourusername.github.io/miniapp/
- Telegram Integration: Seamless integration with Telegram Web App API
- Profile Management: Comprehensive user profile with physical and mental health tracking
- Responsive Design: Beautiful, modern UI that works on all devices
- Real-time Data: Fetches profile data from your backend API
- HTTPS Support: Secure local development with self-signed certificates
- Vue.js 3 - Progressive JavaScript framework
- TypeScript - Type-safe JavaScript development
- Vue Router - Client-side routing
- Pinia - State management
- Vite - Fast build tool and dev server
- Telegram Web App API - Integration with Telegram
miniapp/
├── src/
│ ├── components/ # Reusable Vue components
│ ├── views/ # Page components
│ ├── composables/ # Vue composables (useTelegram)
│ ├── services/ # API services
│ ├── router/ # Vue Router configuration
│ └── style.css # Global styles
├── .github/workflows/ # GitHub Actions for deployment
├── scripts/ # Build and certificate scripts
└── certs/ # SSL certificates for local HTTPS
- Node.js 18+
- npm or yarn
- Git
-
Clone the repository
git clone https://github.com/yourusername/miniapp.git cd miniapp -
Install dependencies
npm install
-
Generate SSL certificates for HTTPS
npm run generate-certs
-
Start development server
# HTTP (port 3000) npm run dev # HTTPS (port 3000) npm run dev:https
-
Open in browser
- HTTP: http://localhost:3000
- HTTPS: https://localhost:3000
npm run buildThe built files will be in the dist/ directory.
This project is automatically deployed to GitHub Pages using GitHub Actions.
-
Enable GitHub Pages in your repository settings:
- Go to Settings → Pages
- Source: "GitHub Actions"
-
Update the base URL in
vite.config.ts:base: process.env.NODE_ENV === 'production' ? '/your-repo-name/' : '/'
-
Push to main branch - The workflow will automatically:
- Build the project
- Deploy to GitHub Pages
- Make it available at
https://yourusername.github.io/your-repo-name/
If you need to deploy manually:
npm run build
# Upload dist/ folder to your web serverCreate a .env file for environment-specific settings:
VITE_API_BASE_URL=https://reforma-bot-production.up.railway.app/api/v1Update the API base URL in src/services/api.ts:
const API_BASE_URL = import.meta.env.VITE_API_BASE_URL || 'https://reforma-bot-production.up.railway.app/api/v1'The app integrates with Telegram Web App API to:
- Fetch user information (avatar, username, etc.)
- Adapt to Telegram's theme (light/dark mode)
- Handle Telegram-specific UI behaviors
When not running inside Telegram, the app uses mock data for development.
The app uses CSS custom properties for consistent theming:
:root {
--primary-bg: #1a1a1a;
--secondary-bg: #2d2d2d;
--text-primary: #ffffff;
--text-secondary: #b0b0b0;
--accent-green: #4CAF50;
--accent-yellow: #FFC107;
--border-color: #404040;
--card-bg: #333333;
}- HTTPS support for local development
- Secure API communication
- Input validation and sanitization
- No sensitive data stored in localStorage
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
If you encounter any issues:
- Check the Issues page
- Create a new issue with detailed information
- Include browser console logs and steps to reproduce
The app automatically updates when you push to the main branch. GitHub Actions will:
- Build the project
- Run tests (if configured)
- Deploy to GitHub Pages
- Update the live site
Built with ❤️ using Vue.js 3 and modern web technologies.