uhuru_be
is the backend server responsible for automated email distribution
to members of Chingu and maintenance of Discord roles. The primary consumer of
these services is the uhurubot application which can be found here.
This server is built using the following main libraries, services, and tools.
For all others and for current release dependencies please consult the
package.json
file.
Dependency | Description |
---|---|
DiscordJS | Discord API library |
Dotenv | Library for managing .env |
ExpressJS | Frontend framework |
GraphQL | GraphQL API |
node-mailjet | Mailjet service API |
The following backend services are invoked using a REST API:
Route | Description |
---|---|
/addroletouser | Add a new Discord role to a user account |
/messagemanager | Configure a template & send an email through MailJet |
/notifyadmin | Send an error notification to an administrator |
/sendmail | Send a custom email through MailJet |
/wakeup | Wakes up the backend when the first FE page loads |
-
Clone or fork this repo using git. Don't forget that to create a runnable application you'll also need the backend.
-
npm install
-
To run the app locally enter
npm run dev
-
Open a new browser window and navigate to the URL
http://localhost:3100/wakeup
. This assumes that you haven't changed the default port number.
The following environment variables must be set up for the app to run properly:
Key | Value |
---|---|
PORT | <port-number (e.g. '3100')> |
MAILJET_API_KEY | The API key registered in MailJet |
MAILJET_SECRET_KEY | The secret key for Chingu required to use the MailJet API |
DISCORD_GUILD_ID | Id for Chingu's Discord server |
DISCORD_TOKEN | Discord API key |
You can find what changed, when in the release history
Copyright 2022 <COPYRIGHT Chingu, Inc.>
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
-
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
-
Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.