π A comprehensive scholarship management platform for educational institutions, featuring application submission, review processes, and administrative tools.
- π Application Submission: Easy-to-use form for scholarship applications
- π Document Upload: Support for CV, transcripts, motivational letters, and more
- β Email Validation: Automatic validation for institutional email addresses
- π Application Management: Review and manage all submitted applications
- π Ranking System: Drag-and-drop interface for application ranking
- β° Time Window Management: Control application submission periods
- π File Management: Secure handling of uploaded documents
- π― Student Selection: Choose students to support
- π Progress Tracking: Monitor supported students' progress
- βοΈ React 18 with TypeScript for robust UI development
- π¨ Material-UI for beautiful, responsive design
- π¦ TanStack Router for type-safe routing
- β‘ Vite for lightning-fast development and builds
- π± Responsive Design for mobile and desktop compatibility
- π FastAPI for high-performance async API
- ποΈ PostgreSQL for reliable data storage
- π SQLAlchemy for powerful ORM capabilities
- β Pydantic for data validation and serialization
- π Alembic for database migrations
- π€ Telegram Bot for login
Get the project running in less than 5 minutes!
- π Python 3.9+
- π’ Node.js 18+
- π³ Docker & Docker Compose (recommended)
- ποΈ PostgreSQL (if running locally)
git clone https://github.com/projacktor/1519.git
cd 1519# Backend configuration
cp backend/.env.example backend/.env
# Edit backend/.env with your configurations
# Frontend configuration
cp frontend/.env.example frontend/.env
# Edit frontend/.env with your API endpoints# Build and start all services
cd backend
docker compose up --build -dSince system uses telegram auth use the following setup for frontend:
cd frontend
docker compose up -dIt will use nginx as a proxy for port 3000
π That's it! Your application will be available at:
- π Frontend: http://127.0.0.1
- π§ API: http://127.0.0.1:8888/docs
Edit settings.yaml in the backend directory:
# Database
# yaml-language-server: $schema=settings.schema.yaml
$schema: "./settings.schema.yaml"
session_secret_key: "null" # Secret key for session management, can be generated with `openssl rand -hex 32`
bot_token: "null" # Telegram bot token, get it from @BotFather
bot_username: "null" # Telegram bot username
superadmin_telegram_id: "null" # Telegram ID of the superadmin user
secret_key: "null"
invite_secret_string: "null"Edit .env in the frontend directory:
VITE_PUBLIC_API=http://127.0.0.1:8888
VITE_PUBLIC_BOT=stp_1519_botWe welcome contributions! Please follow these steps:
git clone https://github.com/projacktor/1519.git
cd 1519git checkout -b feature/amazing-feature- Follow the existing code style
- Add tests for new features
- Update documentation
git commit -m "feat: add amazing feature"git push origin feature/amazing-featureWe use Conventional Commits:
feat:New featuresfix:Bug fixesdocs:Documentation updatesstyle:Code style changesrefactor:Code refactoringtest:Test additions/modificationschore:Maintenance tasks
# Check if PostgreSQL container is running
docker-compose ps postgres
# Check database logs
docker-compose logs postgres
# Connect to database manually
docker-compose exec postgres psql -U postgres -d scholarship_db# Clear cache and reinstall
rm -rf node_modules package-lock.json
npm install
# Clear Vite cache
rm -rf frontend/node_modules/.viteThis project is licensed under the MIT License - see the LICENSE file for details.
π Star this repository if you found it helpful!
Made with β€οΈ by one-zero-eight team