Dora is a comprehensive alert management system built with FastAPI that helps businesses and organizations streamline their communication and notification processes. It provides user registration and login functionality, allowing users to securely access the system and manage their alerts. With Dora, you can effectively send alerts to subscribers based on their location, leveraging Twilio for text message notifications and the smtplib
library for email notifications.
Dora can benefit groups like 🚨 Emergency Services and Public Safety Agencies, for critical alerts, public health advisories, and weather warnings.
🔒 User Registration and Login: Create accounts and securely log in to the system.
📍 Location-Based Alerts: Send targeted alerts to subscribers based on their specified location, ensuring timely and relevant communication.
📱 Twilio Integration: Seamlessly integrate with Twilio to trigger text messages as an alert delivery method.
📧 Email Notifications: Utilize the power of the smtplib
library to send email messages as part of the alerting mechanism.
The API documentation is available at http://localhost:8000/docs once the server is running.
- Clone the repository
git clone [email protected]:navneetdesai/dora.git
cd dora # change directory
poetry install # install dependencies
# Setup the configuration show below
poetry run uvicorn app.main:app --reload # run the app
Once the server is running, you can access the API documentation at http://localhost:8000/docs to explore the available endpoints and interact with the system.
- Create a
.env
file in the root directory by copying .env-example (or rename .env-example to .env) - Create a twilio account and get the following values:
- TWILIO_ACCOUNT_SID
- TWILIO_AUTH_TOKEN
- TWILIO_PHONE_NUMBER
- Create a gmail account and get the email id and app password.
- Update the environment variables in
.env
with your own values
Contributions are welcome! If you find any issues or have suggestions for improvement, please feel free to submit a pull request or open an issue on the GitHub repository.