Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
File renamed without changes.
File renamed without changes.
52 changes: 52 additions & 0 deletions Aster/Readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@

# ⚡ Aster - Collective Data Labeling⚡

## Aster

![Aster](./assets/logo.png?raw=true "Aster")
#### Hackathon Track:
1. Grand Prize
2. Infrastructure and Web3 Track
3. Interoperability Track
4. DeFi Track
5. Cash In Cash Out Track
6. Best Students Prize
7. India Prizes
8. LATAM Prizes
9. Brazil Prizes
10. Africa Prizes

##### Region location
USA, Portugal

##### Team Members
- Tiago Antunes, Backend Developer
- Jayee Li, Blockchain Developer
- Samuel Tang, Frontend Developer

![Our Team](./assets/team.png?raw=true "Our Team")


#### Project Description
Traditional data labeling applications are opaque and exclusive. There is no transparency in the workflow process to verify the demographics of the workers and fair payments to the workers. Usually, the 3rd party companies would take a large portion of the profits and leave only a small portion to the workers. By incorporating the blockchain technologies, Aster is able to eliminate the monopolizing third-party companies to provide fair payments to the workers, allow anyone from anywhere in the world to classify data at ease on their mobile phone, and provide clients the opportunities to collect transparent and multiperspective labels.


#### Summary
Aster is a decentralized and collective microtask application for data. Aster enabled transparent data labeling and instant crypto rewards. Aster allows clients to upload data and task description onto our secured backend and create a smart contract on Celo Blockchain for each labeling task to incentivize users from all over the world to help classify data. The clients can view the real-time progress of their tasks on the Aster home dashboard website. The task information and the rewards per task will be displayed on the Aster web and mobile app. The labelers can log onto Aster’s mobile app to select any task they wish to work on. Once a task is completed, labelers receive instant crypto rewards as indicated on the task page.
Currently, we support only CELO as the crypto payments. We would like to implement the functionalities to support more cryptocurrencies as payments and support more data micro-tasks such as segmentation tasks and description tasks. Moreover, we would also like to provide data analytics to our clients to help them understand their data distribution and information.

![Aster Infrastructure](./assets/AsterInfra.png?raw=true "Aster Infrastructure")

#### URLs
1. [DevPost Homepage](https://devpost.com/software/bottomless-data-5dugkp)
2. [Aster Demo Website](https://aster-38850.web.app/)

#### Presentation
1. [Youtube Demo](https://youtu.be/Jbdv4Z_da8U)
2. [Aster Presentation Slides](https://docs.google.com/presentation/d/1oWlUDwM8wrVbfX-5lbL_ISHMqj9Rqnhlp8ONFSIhHfs/edit?usp=sharing)

#### Next Steps
To turn this project into a fully decentralized working solution, we would build a complete and healthy ecosystem for this project community. We need to include a reviewers community in the ecosystem to prevent frauds and ensure the quality of the micro-tasks. This can be done by implementing a decentralized reviewing mechanism on chain to incentivize users to fully support the mission of this project.

#### License
This repository includes an [unlicensed](http://unlicense.org/) statement though you may want to [choose a different license](https://choosealicense.com/).
Binary file added Aster/assets/AsterInfra.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
File renamed without changes.
Binary file added Aster/assets/logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Aster/assets/team.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions Aster/codebase/backend/.firebaserc
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"projects": {
"default": "aster-38850"
}
}
68 changes: 68 additions & 0 deletions Aster/codebase/backend/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
firebase-debug.log*
firebase-debug.*.log*
config.js

# Firebase cache
.firebase/

# Firebase config

# Uncomment this if you'd like others to create their own Firebase project.
# For a team working on the same Firebase project(s), it is recommended to leave
# it commented so all members can deploy to the same project(s) in .firebaserc.
# .firebaserc

# Runtime data
pids
*.pid
*.seed
*.pid.lock

# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov

# Coverage directory used by tools like istanbul
coverage

# nyc test coverage
.nyc_output

# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
.grunt

# Bower dependency directory (https://bower.io/)
bower_components

# node-waf configuration
.lock-wscript

# Compiled binary addons (http://nodejs.org/api/addons.html)
build/Release

# Dependency directories
node_modules/

# Optional npm cache directory
.npm

# Optional eslint cache
.eslintcache

# Optional REPL history
.node_repl_history

# Output of 'npm pack'
*.tgz

# Yarn Integrity file
.yarn-integrity

# dotenv environment variables file
.env

64 changes: 64 additions & 0 deletions Aster/codebase/backend/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
## Run the Project
1. `npm install` to install all dependencies
2. `firebase init` to initialize project with firebase
3. add firebase configuration file (see below)
4. `firebase serve` to run serve locally
or
5. `firebase deploy` to deploy apis to server

*add firebase configurations in /functions/util/config.js:

const firebaseConfig = {
apiKey: "",
authDomain: "",
projectId: "",
storageBucket: "",
messagingSenderId: "",
appId: "",
measurementId: ""
};
module.exports = { firebaseConfig };


## API Documentation
### HTTP-GET
* /task/[task_id]
* Return task information as JSON
* name : string
* description : string
* total_price : number
* number_of_labelers : number
* contract_address: number
* Dataset: string[] (array of image urls)
* number_of_submission: number
* /tasks
* Returns all the tasks as JSON
* name : string
* description : string
* total_price : number
* number_of_labelers
* contract_address: number
* labels: String[]
* number_of_submission: number
* /task/data/[task_id]/[user_id]
* Return data for user_id to label
* String[] (array of image urls)
* /task/labels/[task_id]
* Returns the labels given by the reviewers
* JSON

### HTTP-POST
* /task
* Create a new task (image classification only)
name : string
description : string
total_price : number
number_of_labelers : number
labels: String[]
* /task/[task_id]/data
* Upload datasets for a specific task
* data: image
* /task/[task_id]/submit
* Submit the answers to each label that was given to this user
* data: Object {int: String}
* user_id: int
5 changes: 5 additions & 0 deletions Aster/codebase/backend/firebase.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"functions": {
"source": "functions"
}
}
1 change: 1 addition & 0 deletions Aster/codebase/backend/functions/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
node_modules/
Loading