We use Whatsapp group messaging and alternatives a lot. However, they are hard to follow for active groups, skimming through what has been talked is impossible, talking on a few subjects at a time is painful, finally, there's little incentive to introduce new topics.

Therefore, we thought there is a need for an group messaging application that threads discussions under specific topics and we began developing "Gang!".

What it does

Gang is and instant messaging application designed for groups. Groups are called gangs. In gangs you can text under existing threads or create a new thread. Every thread has its list of messages and you can easily discuss several topics in the same group. Therefore, since the first message is seen on top of threads it's assumed that new subjects will be talked under new threads. That would lead to see the list of topics talked about in the threads list easily.

The problem of introducing new topics is not a pain anymore but an enhancement to the discussion in group messaging!

How I built it

Emrehan Tuzun has build the front-end with ClojureScript and Reagent on top of React.js. Halil Ozercan has build the backend with Flask and Python. We both used and communicated through it.

Challenges I ran into

Halil Ibrahim has developed the backend services of Gang. My biggest challenge was to bring so many different Flask extensions together to create a robust and well structured server side implementation. We use Flask because it is highly light-weight, modular and self-explanatory for a web framework. Next challenge was to use Socket.IO from Python. Socket.IO is officially developed for both javascript backend and frontend. Flask extension of Socket.IO was very similar to official one but accessing session and global data of flask and python code was not easy to execute.

Accomplishments that I'm proud of

I'm proud of that I solely designed and implemented a backend structure which included websockets, session management, open graph access and OAuth login for facebook. Designing a database scheme, then managing object relation mapping from actual running code is a fulfilling experience as a hacker.

What I learned

I learned different design patterns in web development. For the first time, I used an external tool or extension to map a database scheme into objects(SQAlchemy). Also this was my first experience with websockets in backend side(SocketIO). I learned how to manage web sessions and keep track of what is going on with current user.

What's next for Gang

Gang is still not ready. We are planning to expand Gang's features from private area to public. What I mean is that Gang is aimed to be used between friends right now but it has a huge potential to serve larger communities similar to sub-reddits. We are planning to develop for mobile in next step because instant messaging world is now centered around mobile applications.

Built With

Share this project: