Inspiration

The inspiration for our is app is how slow email is and how many students don't check their emails. There are other options but schools tend to block those apps. Our app is here to cater to schools and fix the problems slow communicate has.

What it does

Our app, Intercom, allows schools to create a school inside the app and create channels that allow parents, students, admins, and teachers to all communicate. It provides real time communicate between all of these people. Our app also allows for filter and for students to report harassment right inside the app. The school can also set people to be moderators so they can flag things that might not be appropriate.

However, our app isn't finished so it currently doesn't support all of those features at the moment but it does support the critical features like messaging, creating channels, creating schools, inviting users, and joining schools.

How we built it

Our apps UI was built with Flutter, a mobile framework. Flutter allowed us to create a mobile app that is cross compatible and was able to run on any phone we needed. It also has hot reload/restart capabilities which made development much faster. Using Flutter also allowed us to directly deploy on phones for testing. The back end of our app was created with both Python and JavaScript.

Python runs the API that communicates with the database and retrieves accounts and other information such as messages, channels, schools, etc. The back end also uses ScyllaDB for our database which was configured with our tables. We chose ScyllaDB for its speed and capabilities such as no garbage collection which reduce the amount of ram used on the server. The Python back end was built using FastAPI because of its ease of use.

JavaScript allows our app to communicate in real time using web sockets which allowed us to display messages in the app.

Both of the languages communicate with each other using RabbitMQ. The reason for using RabbitMQ was to allow scalability of our app in case we ever wanted to scale our app.

Challenges we ran into

1: We started off programming the backend in Rust but we found that too difficult and decided not proceed with using it, the reason being the time constraint and Rusts difficulty.

2: With the time constraint we weren't able to put all the features we wanted so the app doesn't feel complete.

Accomplishments that we're proud of

The application is nice looking in our opinion. It is also reasonably fast. This is also the first time we have made a messaging app.

What we learned

During this project we learned how to build an app using Flutter and make an API using FastAPI. We also gained video editing experience and improved out group communication skills.

What's next for Intercom

If we chose we could make this a fully fledged app with real time messages and improve the UI a bit. We could also charge schools to use our app so that we could make money to go into the apps development. We currently don't have plans to do this however because we all have separate lives to live and we each want to do something more.

Built With

Share this project:

Updates

posted an update

I just want to note that our app is far from complete but I hope that the work and effort we put in is enough to convey the idea we wanted. Intercom was meant to have auto message filtering, images, direct messages, permissions, and lot more but we weren't able to implement into the backend as we wanted something that was reliable for now and we finished the needed features. We do hope that our effort put into the app is seen as we put in a lot of hours to make the app function how it does even though it is not fully finished! Thanks for reading, Nolan, Head Developer.

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