STUDICON is a blockchain-based platform which can manage the whole process from creating a study group to issuing the certificate. We provide various kinds of tools to simplify the process of study group management and issue certificate for those who want it. This will help people to make the best use of study groups easily and give study group members motivation to achieve their goals.
- Vision : To make more useful study group management tool
- Background
- Lack of transparency of current application managing study group might lead to the risk of embezzlement of public fund(deposit).
- Difficulty that current study group applications have when it comes to prove participation of each study group member
- Currently there is no certificate to prove that someone has participated specific study group
- Why Blockchain?
- Since blockchain opens all records transparently, study group application which uses blockchain technology will increase the reliability of managing any kind of deposit for the study group
- Once Information is transmitted to the blockchain, it is impossible to forge the information and it remains permanently. Therefore, the history of study group is permanently recorded on the blockchain and this platform issue certificate based on this information
- Service Feature
- Recruitment and participation of member of the study group
- Automated program managing study rules and giving penalties
- Incentive System for motivation
- Issue certificate of completion
- Expected effect
- Study group members can motivate themselves by systemized penalty and incentive system
- Study chief automates the management of rules to give any penalty or incentive to members.
- Study culture will change based on STUDICON which will be extending the variety of study groups to a wider range from current acquaintance-oriented study.
import project
git clone https://github.com/Youngerjesus/studicon.git
edit application-dev.properties & application.properties
app.host=http://localhost:8080
server.port=8080
create jar file
mvn package
- We created a remote server configuration from Intellij IDEA Ultimate, and synced our works in real time.
- Specific methods are described in the following link : Create a remote server configuration
Languages and Frameworks | version |
---|---|
Java | 11.0.8 |
spring-boot-starter-data-jpa | 2.2.4 |
spring-boot-starter-mail | 2.2.4 |
spring-boot-starter-security | 2.2.4 |
spring-boot-starter-thymeleaf | 2.2.4 |
spring-boot-starter-web | 2.2.4 |
modelmapper | 2.3.6 |
querydsl-jpa | 4.2.2 |
postgresql | 42.2.9 |
icon-sdk | 0.9.15 |
Studicon.py
is an ICON Smart Contract that manages the major functions of Studicon service, deposit and certificates
self._allMemberList = ArrayDB("allMemberList", db, value_type = int)
: For managing accounts who join the study
self._memberStatus = DictDB("memberStatus", db, value_type = str)
: For updating each study member status, JOIN, LEAVE, EXPEL, or GRADUATE
self._studyStatus = VarDB("studyStatus", db, value_type = str)
: For updating study status, OPEN or CLOSE
self._depositInfo = DictDB("depositInfo", db, value_type = int)
: For managing study deposit of each member
@external(readonly=True)
def getMemberDepositInfo(self, _accountId: int) -> int:
: Get the amount of remain deposit owned each member
@external(readonly=True)
def getCommonDepositInfo(self) -> int:
: Get the amount of deposit owned SCORE address
@external(readonly=True)
def getPayBackDepositInfo(self, _accountId: int) -> int:
: Get the amount of pay back deposit for each member
@external
@payable
def openStudy(self, _attendPenalty: int, _homeworkPenalty: int, _initDeposit: int):
: Publish study and set initial deposit and penalties
@external
@payable
def joinStudy(self, _accountId: int):
: Register the account who joins the study with paying initial deposit
@external
def leaveStudy(self, _accountId: int) -> bool:
: Remove the account who leaves the study with paying back the remain deposit
@external
def applyPenalty(self, _accountId: int):
: Apply the penalty, absence, or incomplete assignment, to the member determined by voting : Reduced deposit is stored at the SCORE address
def expelMember(self, _accountId: int):
: Expel the member who no longer has the deposit left
@external
def closeStudy(self):
: Close study and graduate the members who has the deposit left
@external
def payBackDeposit(self, _accountId: int) -> bool:
: Pay back the member-owned and SCORE-owned deposit
Every moment during our project was a challenge for us. Our team has just begun studying blockchain and this project was our first official project to make a tangible outcome. During the project, there were several challenges from designing to programming and we could learn many things from those challenges.
- When designing Dapp, we had to think about the reasons why blockchain should be applied to this application.
- We needed the idea which is attractive as itself, get benefit from the blockchain, and is realistic.
- It was the first time for us to write SCORE and deploy it with t-bears environments in docker.
- We studied for few weeks about writing and deploying SCORE.
- We need to make java-sdk to adapt the score in our application.
- We decided to learn and use Spring Boot framework as our web framework.
- We wrote our own SCORE- Studicon
- Studicon is our own SCORE which controls the deposit of users in our service.
- We are proud the fact that we can contribute to the ecosystem of ICON.
- We designed our service in the aspect of business to get the real profit.
- We are ready to launch our service, and we even prepared AWS domain.
- We are going to keep monitoring our code in detail and test server so that we can improve some operations and fix bugs to launch Studicon.
- After studying the concept of blockchain, we have learned the way to “discuss” how blockchain can be applied to our daily life.
- Though there have been several trials to introduce blockchain to the public, blockchain technology is still quite unfamiliar to ordinary people.
- We designed our idea for ordinary people, especially those in their 20-30 who are looking for the platform to find other people to study together.
- The slogan of our team is to lower the barrier to enter the world of blockchain technology.
- We hope our service can make blockchain technology more familiar to the public.
- Not only learning how to write SCORE, we studied ICON network and ICON loop chain for several weeks with regular sessions and seminars.
- We read the whitepaper of ICON and discussed the components, key concepts, and governance of ICON ecosystem.
- Especially, we are interested in deploying NFT and we found many practical applications of NFT deployed by ICON.
- Through this project, we got more familiar with web developing skills.
- We studied several Web programming skills such as Spring, Spring JPA and Security, Thymeleaf and so on.
- Also, we get more familiar with blockchain development environment.
- We learned how to set the docker virtual environment with t-bears and how to deploy it with key-store file.
- Through the entire process of project, we learned entire way of Dapp developing process.
- The most important thing among what we have learned is that we should keep thinking why blockchain technology should be used.
- Also, we learned how SCORE can be adapted to our web application through java sdk and what we should consider during programming web application.
As it is said before, the object of our team - Skkrypto is to lower the barrier to enter the world of blockchain technology.
We will keep monitoring Studicon and also try to take parts in ICON network in various ways.
- Still, it is ICX which is exchanged between the users of Studicon.
- We have plans to introduce ’Study Coin’ concepts to our service, which can enable each study group to deploy their own study token.
- The following is the detail user flow of “Study Token”.
- When Study is established, the leader of study can deploy the unique token for the study group.
- Users who want to join the study should buy the token of the study group.
- There might be the auction system to buy the token of study group, which means if the study group gets famous, the token of the study group will be more expensive.
- When Study is established, the leader of study can deploy the unique token for the study group.
- The following is the expected benefits of introducing study token into Studicon.
- Study Token can prevent malicious participants joining the study group.
- Through Study Token, there can be a high-quality study group which gives incentives to keep study group over and over.
- It makes it easier to introduce other gaming events to Studicon and makes services of Studicon much more unique.
- Study Token can prevent malicious participants joining the study group.
JeongMin Yeo | SeungHo Park | JunHo Bae | YongWook Lee | JiYeon Jin | DongWoo Jeong | MinSeung Shin |
🔥 | 🔥 | 🔥 | 🔥 | 🔥 | 🔥 | 🔥 |
Licensed under MIT.