weeklyCheckIn[3]

plant99
Published: 06/17/2019

What did I do this week?

Last week, I've been working on integrating sockets, and build the 'chat' functionality on top of that. This involved, writing event handlers for chat events. The most interesting part was writing tests for this module, I've never written tests for real-time applications. Plus this application, has some additional complexity like permissions etc., which combinedly put a challenge to work on. I successfully got my code reviewed and merged, upto chat implementations. I also worked on integrating Sqlite as an alternative to MySQL database.

What's coming up next?

This week, I'm starting to work on File based handlers. To give a better idea, this project facilitates file synchronization across systems. In this part, I'm trying to tap change events and change the master database. Then I'd emit an event to all users that the file has been changed. To better handle this change, next to next week I'll work on the Change module(more on this on my proposal).

Did I get stuck anywhere?

During choosing library for implementing socket clients, to write tests, (Note that we'd use the same client to implement socket client for user interface) I got stuck for a day while trying to figure out the right one. The famous one 'python-socketio' had different distributions for client and server usage. It was hard to maintain the versions with 'flask-socketio' and 'python-socketio[client]' considering we were use conda-forge to install and distribute apps. For a while, I started writing tests with 'socketio-client' library. Me and my mentor, after a bit of discussion decided to use python-socketio.

View Blog Post

weeklycheckIn[2]

plant99
Published: 06/09/2019

What did I do this week?

Past week, I've worked on restructuring the project when I introduced

- flask-sqlalchemy: a library to manage an ORM of the database and app

- token based authentication: I moved the project from an email-password authentication to a token-based authentication. I got a pull-repository of this changes reviewed and merged to my branch in origin repository.

Wrote tests for the user related routes. After this, I started working on sockets module, in a new class in the file `sockets_manager.py`.


What is coming up next?

I have been writing code to test sockets. It's my first time testing a socket-based application, so I am quite excited about it. After I get my code up to sockets reviewed, I will be coding more on modules facilitating message I/O on top of the socket layer.


Did I get stuck anywhere?

I got stuck in multiple places, there were a few circular dependencies issues I had to face which led me to restructure my app, during usage of flask-sqlalchemy, and sockets. Besides this, I realized that I can't use flask-socketio, and python-socketio for the same app due to a dependency issue as of now. I'll look more into that with my mentor later. For now, I am using a different library to implement a websocket client.

View Blog Post

weeklyCheckIn[1]

plant99
Published: 06/03/2019

What did I do this week?

As planned, I set up the mscolab project. I decided to use 2 libraries to handle web-sockets, python-socketio for client side connection handling and a more specific flask-socketio from the same author, to develop an integrated socket server with Flask. I created migrations for the schemas defined, and setup basic authentication handlers.  To check the socket connections, I wrote a html and another python client. I have successfully developed my proposed functionalities till 06/05/2019.


What is coming up next?

For the first part of my next week, i.e 4th and 5th I'd be working on cleaning of my code, restructuring it, and integrating tests for the same. I have asked my mentor to conduct my first review on 5th of June. After that, I'll be working more on socket APIs and handlers, some major functionalities to be developed and tested are

  • rooms: for each project, there'd be a room. For each change emitted to the room, it has to be sent to users in that room.
  • Besides that functionality, the addition and removal of users in and out of the room should be done.
  • events the events should be classified and developed to facilitate chat/file i/o functionalities


Did I get stuck anywhere?

Since I am new to Flask, I haven't been able to structure the database interaction of the app. For now, I am using a Mysql library which you can use to write direct SQL queries. As a part of refactoring in the next two days, I am working on integrating an ORM. The authentication part is also very basic, I will look again on improve it before 5th.

View Blog Post

weeklyCheckIn[0]

plant99
Published: 05/27/2019

Hi, I am Shivashis. I will be contributing to MSS during GSoC'19. This is my first blog of the series.

What did I do this week?

I was looking more into Flask-socketio library which I would need during my project. Also, contributed some code towards 1.8.0 release of MSS software.


What is coming up next?

Next week, I would work on User and authentication related APIs of mscolab. More about it in an upcoming blog.


Did I get stuck anywhere?

Last week, I was mainly working on tested code functioning as tutorials. So I didn't come across any non-trivial blockers.

View Blog Post