Cryptocurrency monitoring made easy.
Explore the docs »
View Demo
·
Report Bug
·
Request Feature
Cryptek is a web application designed to facilitate an easily-navigable cryptocurrency monitoring hub. Users can view lists of cryptocurrency assets and associated details without too much visual clutter or overcomplication. Creating a suitable environment for cryptocurrency novices or those who want simple information without needless detail.
- CoinGecko - Cryptocurrency API
- Amazon Web Services
- AWS IAM (Identity Access Management)
- Amazon ECR (Elastic Container Registry)
- Amazon ECS (Elastic Container Services)
- Amazon EC2 (Elastic Compute Cloud)
- AWS Cloud Watch
- Firebase
- Firebase Authentication
- Firebase Firestore
- Visual Studio Code
- GitHub Actions
- Allow user(s) to access a list of cryptocurrency assets (in order by price) — (based off the API)
- Allow user(s) to index the list of cryptocurrencies
- Allow user(s) to view details on a selected cryptocurrency
- Allow user(s) to view graphs / charts on a selected cryptocurrency
- Allow user(s) to favorite cryptocurrency assets to a ‘Watchlist’ through local storage
- Allow user(s) to unfavorite cryptocurrency assets
- Allow user(s) to access a web + mobile responsive app
To run this project locally, the following must be installed:
First, clone this repository, then go inside the directory:
git clone https://github.com/strategio-tech/fp-sim4-team-404.git
cd fp-sim4-team-404
Install the dependencies required:
npm install --force
Finally, start the app:
npm start
You can then navigate to localhost:3000
to view the web app.
For the CI/CD pipeline and web deployment, a Github Action workflow is triggered whenever the following files or directories are modified:
public/
src/
package.json
package-lock.json
Dockerfile
For the workflow to run smoothly, the user must do the following steps within an AWS account.
1) Create an ECR repository to store your images.
2) Create an ECS task definition, an ECS cluster, and an ECS service.
3) Store your ECS task definition as a JSON file in your GitHub repository.
4) Store an IAM user access key in GitHub Actions secrets named AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY.
The workflow file must then be modified with the proper variables to function properly. For more information, view the aws.yml file.
Once the workflow is activated, the following steps occur automatically:
1) The workflow gains programmatic access to AWS services using AWS IAM credentials.
2) The workflow builds a Docker image for the app.
3) This image is then pushed to a public repository on AWS Elastic Container Registry (ECR).
4) The ID for the image in the ECR repository is added to an AWS Elastic Container Service (ECS) task definition.
5) The ECS task definition is deployed to an existing ECS cluster and service
This causes ECS to run the created task, which in turn deploys an EC2 instance that hosts the app.
As an example, the site can be accessed at http://ec2-3-81-115-80.compute-1.amazonaws.com/