Inspiration
There have been a lot of students who had an experience of being bullied for some time in Japan, and which has been regarded as a profound problem so that teachers and local board of education have struggled with this problem. In recent years, such students have gone through cyber bulling in addition to physical one. To make matters worse, online learning environment deprived children of opportunities to share their situation with their teachers in person due to coronavirus. Also, we have been wondering that if kids have some troubles in house, they would need to endure a bitter experience as the amount of time they spend in house increases. We would like to help such children so that we launched this project.
What it does
Ring A Bell is a workflow application. As a frontend user interface for students, this app uses LINE, a chat app popular in Japan instead of What's app or We chat. With regards to workflow component, it uses Jira, but it works as a backend system so users are normally unconscious about it. Instead, teachers handle tickets on another frontend web page written in Vue.js, The page is hosted on OpenShift and it is regarded as a hub to cope with problems. Each step for solving one ticket is as follows:
- Students install LINE application from marketplace.
- Add Ring A Bell account to their friends list.
- Locate Ring A Bell from the list.
- Open a form from Ring A Bell.
- A ticket is created based on the text written in the form.
- Teachers (or person in charge) open a ticket on Jira.
- Teachers can take several actions to the ticket (e.g. make a comment, escalate to others such as vice principal, principal or local board of education)
7'. In the meantime, on each ticket page, teachers can refer to news related to a word in the text message. (Bullying and abuse may cause more profound problems such as suicide. Therefore, this app informs teachers to face with students' problem seriously and make them consider the worst situation.)
How we built it
Backend (Ticket Management API)
Architecture: This API enable us to manage and search for tickets using Jira as its database. It works as anti-corruption layer so that we can adopt another database such as Redmine, PostgreSQL, and MongoDB without any effect on frontend. Owing to Knative Serving, it has several advantages including: more flexible and quicker scaling, enable us to develop event-driven architecture. Feature: Ticket search, Create ticket, Make a comment on ticket, Escalate ticket to upper person, Send back ticket
Frontend
We uses LINE as a frontend for students because it is very popular app for Japanese people. Through an chatbot account which we created with LINE developer tool, students open a form which is written in vue.js. For teachers, they are currently supposed to check tickets in Jira, but in the future we would like to make a web page for them, perhaps we may continue to use Jira API, though.
Challenges we ran into
We need to reduce boot time in order for this app to be serverless API on the premise that it uses Knative. Also, we struggled with handling News API.
Accomplishments that we're proud of
When it comes to ITSM, we as a person in IT industry are familiar with it and feel that workflow systems are really convenient; however, it is not well-known in schools. We are very delighted to combine workflow concept with real school problems.
What we learned
We learnt about how to manage huge volume of asset in terms of implementing serverless API with Knative.
What's next for Ring A Bell
We want to add Ring A Bell to some features as follows:
- 'Anomaly detection': This feature leverages accumulated logs about whether students submit a message or not, try to send a message but quit or not because some students are perhaps hesitant to share their situation in spite of actually having a problem. We would like to save such children proactively. In addition, We hope that the logs would be an important evidence because a lot of educational institutions have not tried to keep an exact record of problems and teachers would shy away from having a responsibility for them.
- 'Display proper news': We currently display news related to a ticket miscellaneously. However, each country has their own culture and law. This feature enables users to see only news in proper language and news, which is in the country where the user reside. We could implement this feature in terms of Japanese and for people in Japan, but from the viewpoint of demo and test, we decided to unload it this time.
- 'Take a counseling': If students want a opportunity for a counseling, they can reserve a seat from chat screen.
Built With
- deepl
- express.js
- jira
- line
- newsapi
- openshift
- vue

Log in or sign up for Devpost to join the conversation.