Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ryanshepps/nodata
Data is expensive. We can help with that. Third Place winner (out of 73 submissions) at HawkHacks (https://devpost.com/software/nodata)
https://github.com/ryanshepps/nodata
sms twilio
Last synced: about 1 month ago
JSON representation
Data is expensive. We can help with that. Third Place winner (out of 73 submissions) at HawkHacks (https://devpost.com/software/nodata)
- Host: GitHub
- URL: https://github.com/ryanshepps/nodata
- Owner: ryanshepps
- Created: 2022-05-13T22:49:28.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2022-05-15T16:45:50.000Z (over 2 years ago)
- Last Synced: 2023-11-10T20:29:19.571Z (about 1 year ago)
- Topics: sms, twilio
- Language: JavaScript
- Homepage:
- Size: 210 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Text
```
--help
```to `(705) 710-3709`
## Architecture
### Stack
#### Node
Our server is written in JavaScript and ran on Node.
#### Twilio
We use Twilio to coordiante SMS sending and receiving.
#### RapidAPI
RapidAPI is used in conjunction with bing web search to get results for a search on the internet.
#### Docker
We use docker to containerize our app. Containerization allows us to streamline our deployment process.
#### Google Cloud
Our Node backend is deployed on **Google Cloud using Google Cloud Run**.
We also use **Google Cloud's Secret Manager** so that we don't expose our API keys.
#### Domain.com
We use a nodataa.tech domain internally. Our domain is registered with domain.com.
### Sequence Diagram
## Development
### Simulating Production Build
```
Docker build -t . nodata
Docker run -p 3000:3000 nodata
```Send your requests to localhost:3000.
### Local Development
You probably won't need anything here. But we've left it so that you can see our local development process.
#### Setting up dependencies
```
npm ci
```#### Running
```
npx nodemon index.js
```#### Serving local app to the internet
Install [ngrok](https://ngrok.com/), and follow their instructions for serving your local app to the internet. Keep in mind that the app is running on port 3000.
#### Sending Twilio requests to your server
You're going to need a Twilio account to set this up, then follow the steps below.
1. Add a phone number for your acount.
- Make sure to get a phone number that you can actually text. Our friend [Geordy](https://github.com/Geordy-Decena) originally set us up with a U.S. phone number. We will not be participating in another hackathon with him.
2. Configure the phone number to send a Webhook to `https://your-ngrok-url/sms`. Make sure it's a POST request.#### RapidAPI Key
Unless you're set up to use our Google Cloud Secrets Manager, you'll need to create your own RapidAPI key to be able to search the web.
Enter this api key in the `options` object in `src/bing-search.js`.
#### Finished!
And that's it! You're done setting up for local development.