GuideForm is a desktop application built with Python Tkinter for surveying senior engineering college students in Bahrain. The application is designed to support Tashfeen Engineering Solutions in expanding its presence in the Middle East by gathering insights about young engineers in the region.
The interface provides comprehensive functionality for accessing surveys, company information, and visualizing collected data through interactive graphs. More details can be found by clicking here.
Related Project: GuideForm Website - Web interface for the GuideForm survey system.
Security Notice: Never commit your config.ini file with real API credentials to version control. The .gitignore file is configured to exclude it.
Data Privacy: Survey data and Telegram session files are automatically excluded from git commits. Ensure compliance with data protection regulations when handling user information.
Setup Required: Before running the application, you must:
- Configure Telegram API credentials in
config.ini - Update the Telegram channel ID in
Interface.py(replaceINSERT_CHAT_ID_HERE) - Set up a local web server for survey forms
- Place required image files in the
resources/directory
Network Requirements: The application requires internet connectivity for:
- Telegram API access
- Web browser links to external resources
- Survey form access (localhost required)
- Interactive GUI: Clean and intuitive interface built with Tkinter
- Survey Access: Direct access to online surveys for engineering students
- Data Visualization: Real-time graph generation from survey responses including:
- Age distribution
- Gender demographics
- University enrollment
- Engineering majors
- Career goals and next steps
- Programming languages and frameworks
- Learning methods and experience levels
- Telegram Integration: Automated data extraction from Telegram channels
- External Links: Quick access to company website, brochures, and application resources
- Real-time Clock: Display current date and time
- Python 3.x
- Telegram API credentials (api_id and api_hash)
- Local web server for accessing forms (e.g., localhost)
- Clone the repository:
git clone https://github.com/emansarahafi/GuideFormPython.git
cd GuideFormPython- Install required packages:
pip install pillow matplotlib numpy telethon configparser-
Place resource files in the
resources/directory:GuideForm.png- Application logoGuideForm.ico- Application icon (optional)GuideForm.pdf- Company brochure (optional)
-
Create your
config.inifile from the template:
cp config.ini.template config.ini- Configure Telegram API credentials in
config.ini:
[Telegram]
api_id = YOUR_API_ID
api_hash = YOUR_API_HASH
phone = YOUR_PHONE_NUMBER
username = YOUR_USERNAME-
Update Telegram channel ID in
Interface.py:- Find and replace
INSERT_CHAT_ID_HEREwith your actual Telegram channel ID (appears twice in the code)
- Find and replace
-
Set up local web server for survey forms (if using local hosting)
Run the application:
python Interface.py- Access the Survey: Opens the survey form in your default web browser
- Access the Links: Dropdown menu with links to:
- Application website
- Company brochure
- Tashfeen Engineering Solutions website
- Access the Data: Dropdown menu for viewing different data visualizations:
- Demographics (Age, Gender)
- Academic information (University, Major)
- Career insights (Next steps, Future goals)
- Technical skills (Languages, Learning methods, Experience)
The application generates various types of charts:
- Pie Charts: Age distribution, gender demographics, learning duration, experience ratings, career relevance
- Bar Charts: Universities, majors, career paths, programming languages, learning methods
GuideFormPython/
│
├── Interface.py # Main application file
├── config.ini.template # Template for Telegram API configuration
├── config.ini # Your API credentials (excluded from git, create from template)
├── README.md # Project documentation
├── .gitignore # Git ignore rules
│
├── resources/ # Static resources
│ ├── GuideForm.png # Application logo (excluded from git)
│ ├── GuideForm.ico # Application icon (excluded from git)
│ ├── GuideForm.pdf # Company brochure
│ └── README.md # Resources directory documentation
│
└── data/ # Generated data files (excluded from git)
├── .gitkeep # Keeps directory in git
├── user_data.json # Telegram user data (generated)
├── channel_messages.json # Telegram messages (generated)
└── channel_messages.txt # Processed messages (generated)
Note: All files marked as "excluded from git" are listed in .gitignore to protect sensitive data and credentials.
-
Obtain API Credentials: Visit Telegram API Development Tools
- Sign in with your phone number
- Create a new application
- Note your
api_idandapi_hash
-
Configure credentials: Update
config.iniwith your actual credentials- Use full phone number including + and country code
- Username should be your Telegram username without @
-
Set Channel ID: In
Interface.py, replaceINSERT_CHAT_ID_HERE(appears twice) with your Telegram channel/group ID- You can get this using bots like @userinfobot or @RawDataBot
Warning: Telegram will create session files (.session) in the project directory. These contain authentication tokens and are automatically excluded from git.
The application expects files in the resources/ directory. All resource files are excluded from git to keep the repository clean.
Required:
GuideForm.png- Application logo (recommended size: 200x200px)
Optional:
GuideForm.ico- Application icon for WindowsGuideForm.pdf- Company brochure for sharing
For local survey forms, ensure you have a web server running on localhost. The application expects forms at:
http://localhost/TashfeenUniForm/appsurvey.htmlhttp://localhost/TashfeenUniForm/appwebsite.htmlhttp://localhost/TashfeenUniForm/guideform.pdf
You can use any local web server (Apache, Nginx, Python's http.server, etc.)
Tashfeen Engineering Solutions is a geotechnical, civil engineering, and software development company established in 2020. The company has worked on several projects on national and international scales and is expanding its operations to the Middle East, beginning with Bahrain.
This project is licensed under the MIT License - see the LICENSE file for details.
For inquiries, please visit Tashfeen Engineering Solutions
- Built with Python and Tkinter
- Data visualization powered by Matplotlib
- Telegram integration via Telethon library
