This application is an email management and distribution application for sending emergency announcements related to the Symbol blockchain. The system configuration ensures reliability and security using Azure, AWS, and Entra ID.
Below is the system configuration diagram of this application.
graph TD
subgraph Azure
A[Azure Apps Service]
end
subgraph Database
B[Cosmos DB]
end
subgraph Email
C[AWS SES]
end
subgraph Authentication
D[Entra ID]
E[Administrators]
end
A --> B
A --> C
E --> D
D --> A
-
Email Address Registration Form:
- Installed on our website, allowing users to register their email addresses.
-
Distribution Management Screen:
- An authenticated user-only screen accessible only to administrators.
- Create and distribute emergency announcement emails.
-
Email Distribution:
- Use AWS SES (Simple Email Service) to distribute announcements to registered email addresses.
-
Authentication:
- Administrators are authenticated via Entra ID.
- Only authenticated users can access the distribution management screen.
-
Operation:
- Operated by volunteer community members.
- Azure Apps Service: Application hosting
- Cosmos DB: Database management
- AWS SES: Email distribution service
- Entra ID: Authentication service
-
Clone the Repository:
git clone https://github.com/ymuichiro/symbol-community-mail-system cd symbol-community-mail-system -
Configure Azure App Service:
- Create a new app service in the Azure Portal and deploy the repository.
-
Configure Cosmos DB:
- Create a Cosmos DB instance and obtain connection information.
-
Configure AWS SES:
- Set up SES in the AWS Management Console and obtain the necessary credentials.
-
Configure Entra ID:
- Set up administrator authentication and obtain the necessary credentials.
-
Set Environment Variables:
- Create a
.envfile and set the following information.
AWS_SES_SMTP_USER= AWS_SES_SMTP_PASSWORD= AWS_SES_SMTP_ENDPOINT=
COSMOS_ENDPOINT=https://${name}.documents.azure.com:443 COSMOS_KEY= COSMOS_DATABASE=MailAddress COSMOS_CONTAINER=Items
Callback URL Example: http://localhost:3000/api/auth/callback/azure-ad
AZURE_AD_CLIENT_ID= AZURE_AD_CLIENT_SECRET= AZURE_AD_TENANT_ID= AZURE_AD_GROUP_ID= AUTH_SECRET=openssl rand -base64 128
- Create a
-
Start the Application:
npm install npm run dev
-
Email Address Registration:
- Access the registration form on the site and register your email address.
-
Create Emergency Announcements:
- Log in to the management screen and create a new announcement.
-
Email Distribution:
- Click the distribution button to send the announcement to registered email addresses.
- Please report bugs and propose features through GitHub Issues.
- Pull requests are welcome. Please refer to the detailed Contributing Guidelines.
This project is released under the MIT License. For more details, please refer to the LICENSE file.
If you have any questions or suggestions regarding this document, please contact us at the above email address.