Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bartolomej/moonland
Discover moon worthy shitcoins 💩 🚀
https://github.com/bartolomej/moonland
Last synced: about 17 hours ago
JSON representation
Discover moon worthy shitcoins 💩 🚀
- Host: GitHub
- URL: https://github.com/bartolomej/moonland
- Owner: bartolomej
- Created: 2021-11-05T10:22:08.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2022-10-06T22:01:52.000Z (about 2 years ago)
- Last Synced: 2023-03-06T23:09:15.306Z (over 1 year ago)
- Language: C#
- Homepage: http://83.212.82.177:5000
- Size: 24.1 MB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# MoonLand
> This was developed for a university home assignment and is not meant for production use :)
MoonLand queries social media platforms to provide social sentiment analytics for various crypto coins.
Currently moonland supports only Twitter API as a data source, but can be easily extended to support multiple data sources (Reddit, 4Chan, Facebook,..).
A "SocialPost" is a single (unique) instance of social media content that contains topic of interest (e.g. mention of some cryptocurrency). Moonland maintains it's own index of posts of interests, which is updated within predefined intervals.
Moonland can return simple social analytics based on data stored in it's internal index of posts.
| Discover shitcoins | Filter by search term | View coin details |
|-----------------------------|-------------------------------|--------------------------------|
| ![](./images/coin-list.png) | ![](./images/coin-search.png) | ![](./images/coin-details.png) || View bookmark list | Visualize coin popularity |
|---------------------------------|-----------------------------|
| ![](./images/web-bookmarks.png) | ![](./images/web-graph.png) |## 👋 Get started
1. You need to install Docker & docker-compose in order to run this app with Docker.
See: [Docker installation instructions](https://www.docker.com/get-started)2. Add environment variables
Create `.env` file in project root, with environment variables defined in `.env.example`3. Once you have installed and setup docker, run:
```shell
# run development configuration
docker-compose up -d
# run production configuration
docker-compose -f docker-compose.yml -f docker-compose.prod.yml up
```
Your local app should now be up and running on http://localhost:5000 🥳.## 🏛 Architecture
Moonland data model is designed with extensibility in mind. We could easily extend the platform to support multiple data sources (aka. "social platforms"), etc.
![](./images/data-model.png)
In terms of application architecture, Moonland is based on a simple microservice architecture, with 2 services:
- `analytics` is concerned with data aggregation and analysis
- `gateway` deals with user management and authentication (also acts as a proxy)
## ⚙️ Configuration
Most of the system is easily portable across multiple environments. Sensitive and configurable parameters are defined with OS environmental variables.
Bellow is a complete list of different environmental variables supported.
> NOTE: Variables that are not explicitly defined as *optional* are required for the system to function.
Data source authentication:
- `COINMARKETCAP_API_KEY`
- `TWITTER_API_KEY`
- `TWITTER_API_SECRET`
- `TWITTER_ACCESS_TOKEN`
- `TWITTER_ACCESS_TOKEN_SECRET`Analytics service database:
- `DB_HOST`
- `DB_PORT`
- `DB_DATABASE`
- `DB_USER`
- `DB_PASSWORD`Data aggregation intervals:
- `COIN_FETCH_INTERVAL` (optional) - crypto data aggregation interval in ms (defaults to 1h)
- `SOCIAL_FETCH_INTERVAL` (optional) - social data aggregation interval in ms (defaults to 10min)## ✌️ Contributors
- Bartolomej Kozorog (63200152)
- system design
- analytics service development
- mobile app development
- server maintenance
- Jan Šuklje (63180292)
- gateway service development
- mobile app development
- hosting server setup