A streamlined Flask web application for managing placement opportunities at KARE. The application provides an admin interface for creating placement messages and sending notifications via Excel file uploads, Telegram, and Email.
- Dashboard: Overview of system status and quick actions
- Create Messages: Form-based interface to create placement opportunity messages
- Excel Upload: Upload student lists via Excel files (no database storage required)
- Multi-Channel Sending: Send messages to Telegram group and individual emails
- Template Download: Get Excel template for proper formatting
- Test Configuration: Test email and Telegram setup before sending
- Excel Processing: Read student data from Excel files using pandas
- Telegram Integration: Send messages to placement group
- Email Integration: Send individual emails via Gmail SMTP
- No Database: Direct processing without storing student data
- Responsive Design: Modern UI with Bootstrap 5
- Python 3.8 or higher
- Gmail account with App Password
- Telegram Bot Token
- Telegram Group ID (optional)
-
Clone the repository
git clone https://github.com/linuzenas/multi-channel-placement-notify.git
-
Create virtual environment
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies
pip install -r requirements.txt
-
Environment Configuration
- Copy
env_example.txt
to.env
- Fill in your configuration values:
SECRET_KEY=your-secret-key-here GMAIL_USER=your-email@gmail.com GMAIL_APP_PASSWORD=your-gmail-app-password TELEGRAM_TOKEN=your-telegram-bot-token TELEGRAM_GROUP_ID=your-group-id
- Copy
-
Enable 2-Factor Authentication
- Go to Google Account settings
- Enable 2FA for your Gmail account
-
Generate App Password
- Go to Google Account > Security
- Under "2-Step Verification", click "App passwords"
- Generate a new app password for "Mail"
- Use this password in your
.env
file
-
Create Telegram Bot
- Message @BotFather on Telegram
- Use
/newbot
command - Follow instructions to create your bot
- Save the bot token
-
Add Bot to Group
- Add your bot to the placement group
- Get the group ID using @userinfobot
- Use the group ID in your
.env
file
-
Test Setup
python test_setup.py
-
Start the Application
python run.py
-
Access the Application
- Open your browser and go to
http://localhost:5000
- Use the admin panel to create and send messages
- Open your browser and go to
-
Access Create Message
- Click "Create Message" on the dashboard
- Fill in the placement opportunity details:
- Message title
- Company name and job title
- CTC details for UG/PG students
- Stipend information
- Eligibility criteria
- Registration links
- Additional notes
-
Preview Message
- Use the preview button to see how the message will look
- Make adjustments as needed
-
Prepare Excel File
- Download the template from the dashboard
- Create Excel file with columns:
name
andemail
- Add student data (no database storage required)
-
Upload and Send
- Go to "Upload Students" page
- Select your Excel file
- Click "Send Messages"
- Messages are sent to Telegram group and individual emails
Your Excel file should have the following structure:
name | |
---|---|
Linu Zenas | 9923008040@klu.ac.in |
K Shyam Sunder | 9923008038@klu.ac.in |
Important:
- Column names must be exactly "name" and "email" (case-sensitive)
- No empty rows between data
- Valid email addresses required
The application supports messages in the following format:
Dear PDs (CSE ECE EEE IT BCA B.Sc (CS&IT) MCA M.Sc (CS,DS))
Hire3x!! has confirmed the campus drive for 2026 batch students.
Job Title: Graduate Trainee – Developer (Front-End / Back-End)
CTC details:
- For UG - 3.5 to 5 LPA based on overall performance rating during the training
- For PG - 4.5 to 6 LPA based on overall performance rating during the training
All candidates will be paid a stipend of Rs. 15k/- Per month during their Training period.
Eligibility Criteria: Unplaced Students with no standing arrear are eligible.
Registration Link: [Link to registration form]
Note: It is mandatory that every interested students must register on both the links mentioned above.
placement-messenger/
├── app.py # Main Flask application
├── config.py # Configuration settings
├── run.py # Startup script
├── test_setup.py # Setup verification
├── requirements.txt # Python dependencies
├── env_example.txt # Environment variables template
├── README.md # This file
├── templates/ # HTML templates
│ ├── base.html # Base template
│ ├── index.html # Home page
│ └── admin/ # Admin templates
│ ├── dashboard.html
│ ├── create_message.html
│ └── upload_students.html
└── static/ # CSS, JS, images (if needed)
GET /
- Home page (redirects to admin dashboard)GET /admin
- Admin dashboardGET /admin/create-message
- Create message formPOST /admin/create-message
- Create new messageGET /admin/upload-students
- Upload students pagePOST /admin/upload-students
- Upload and send messagesGET /admin/template
- Download Excel templatePOST /admin/send-test
- Send test message
- File Validation: Only Excel files allowed with size limits
- Input Sanitization: Form validation and data cleaning
- Error Handling: Comprehensive error handling and logging
- Admin Only: No user authentication required (admin panel only)
- Import errors: Run
pip install -r requirements.txt
- Email not sending: Verify Gmail app password
- Telegram not working: Check bot token and group ID
- Excel processing errors: Ensure proper column names and format
- File too large: Maximum size is 16MB
- Invalid format: Only .xlsx and .xls files allowed
- Column errors: Ensure "name" and "email" columns exist
- Empty data: Check for empty rows or invalid emails
python run.py
- Set
FLASK_ENV=production
in your environment - Use a production WSGI server like Gunicorn
- Set up reverse proxy with Nginx
- Configure SSL certificates
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
For support and questions:
- Create an issue in the repository
- Check the troubleshooting section
- Review the logs in
placement_messenger.log
- Message templates and presets
- Delivery status tracking
- Advanced Excel validation
- Message scheduling
- Analytics dashboard
- Multiple group support