evnt. is a robust tool for automating event management, designed to simplify organizing events across different industries. By automating tasks such as creating groups and adding members, evnt. enables organizers to concentrate on crafting impactful experiences instead of handling time-consuming administrative tasks.
Organizing events like hackathons, coding contests, and workshops often requires manual participant management, such as group creation and adding members. This process is time-consuming, especially for college-hosted or small-scale events with limited resources. A streamlined, automated solution is crucial to reduce administrative effort and enhance efficiency.
evnt. simplifies this process by automating group creation and participant management.
-
Free and Open Source: Ideal for small-scale events, this free, open-source tool streamlines group management and participant addition, providing a cost-effective alternative to complex, expensive platforms. Customize the source code to develop solutions tailored to your unique requirements.
-
Enhanced Privacy: Clone and run locally for full data control and enhanced privacy.
-
Streamlined Participant Addition: Automatically import participant data from CSVs and add to Telegram groups, minimizing errors and streamlining onboarding.
-
User-Friendly Interface: A clean and intuitive interface that allows users to navigate the application with ease, making event management straightforward and efficient.
During the 15-hour hackathon, we encountered two major challenges:
- WhatsApp API Limitations: Accessing the API was complex and risky, with unauthorized methods leading to potential bans.
- Switch to Telegram: By using Telegram's official API and MTProto protocol, we unlocked full user-level capabilities, overcoming the limitations of regular bots.
This transition ensured security, flexibility, and respect for user privacy.
Follow these steps to set up evnt. locally:
Ensure you have the following installed:
- Node.js (v16 or higher)
- npm
-
Clone the Repository
git clone https://github.com/ABHAY-100/evnt.git
-
Navigate to the Project Directory
cd evnt
-
Install Dependencies
npm install
-
Set Up Environment Variables
- Locate the
.env.example
file in the root of the project. - Create a new file named
.env
or.env.local
in the root directory. - Copy and paste the contents of
.env.example
into the newly created.env
file.
- Locate the
-
Access Telegram Developer Tools
- Open my.telegram.org and log in with your phone number.
- After logging in, click on API Development Tools.
- Create a New Application by filling out the form with an appropriate App Title and Short Name.
-
Retrieve API Credentials
- Once created, you will be shown a page with your API_ID and API_HASH.
- Copy these values and paste them into the
.env
file under their respective keys.
-
Add Telegram Phone Number in the
.env
file in international format asTELEGRAM_PHONE_NUMBER=+<YourPhoneNumber>
-
Generate
TELEGRAM_SESSION
and Update the Environment File-
Run the following command to generate the
TELEGRAM_SESSION
stringnpx ts-node scripts/auth-telegram.ts
-
Follow the instructions in the terminal to authenticate your Telegram account.
-
Once the
TELEGRAM_SESSION
is generated, copy the output string. -
Open your
.env
file and add theTELEGRAM_SESSION
key with the copied stringTELEGRAM_SESSION=<YourGeneratedSessionString>
-
-
Start the Application
npm run dev
-
Open your web browser and navigate to
http://localhost:3000
to access the app.
-
Once the application is running, open it in your browser (
http://localhost:3000
), and you will see a form. -
Select whether you want to create a group or channel using the switch option.
-
Enter the group/channel name and description in the corresponding fields.
-
Upload a CSV file containing participant data in the following format:
name, phone johndoe, +91933222XXXX janedoe, +91933852XXXX
-
If everything is configured correctly, the members will be added automatically. A success modal will appear with event statistics, and a CSV report (named
group/channelname-report.csv
) will be downloaded with a summary of the process.
The application utilizes Telegram's MTProto protocol via the telegram
npm package, unlocking advanced capabilities beyond traditional bots. Here's a simplified breakdown:
-
Authentication & Setup
- Authenticates using Telegram’s MTProto API with API ID, API Hash, and phone number.
- Supports session persistence and handles two-factor authentication if enabled.
-
Group Creation
- Accepts a CSV file of participant details and validates phone numbers.
- Programmatically creates groups or channels, generates invite links.
-
Member Management
- Adds members by resolving phone numbers to Telegram accounts.
- Uses fallback methods like invite links or private messages for privacy-restricted users.
-
Operation Report
- Produces and downloads a detailed CSV report
By contributing, you agree that your contributions will be licensed under the MIT License. See the LICENSE file for more details.
Thank you for considering contributing to evnt.! Here’s how you can help make it even better.
If you find a bug or have a suggestion, feel free to create an issue
-
Go to the Issues tab.
-
Click on New Issue.
-
Describe the issue or feature request clearly, and provide any relevant details or steps to reproduce.
We welcome any contributions! Here’s how you can contribute
-
Fork the repo and make your changes.
-
Open a pull request with a description of your changes.
-
We’ll review it and merge it!
Please be respectful and constructive in your interactions. Let’s work together to improve evnt.!
evnt. is dedicated to revolutionizing the event management process for organizations or individuals by automating the process of adding the participants to groups. Our tool empowers event organizers to concentrate on creating impactful and memorable events while minimizing administrative challenges.
Thank you for your interest in evnt.! 🤝