GSoC/2017/StatusReports/Vasudha: Difference between revisions

From KDE Community Wiki
< GSoC‎ | 2017‎ | StatusReports
No edit summary
No edit summary
 
(21 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Title: Ruqola ==   
== [[File:Ruqola-icon.png|border|50x50px]] Ruqola ==   


Ruqola is a Qt interface to Rocket Chat, with a library implementing DDP semantics, and a Kirigami UI for both desktop and mobile. The application is a QML/C++/Qt app, thus providing multi-platform portability.  
Ruqola is a Qt interface to Rocket Chat, with a library implementing DDP semantics, and a Kirigami UI for both desktop and mobile. The application is a QML/C++/Qt app, thus providing multi-platform portability.  
There is currently no native Rocket.Chat client; Ruqola is the first generic cross-platform chat application based on Rocket.Chat.  
There is currently no native Rocket.Chat client; Ruqola is the first generic cross-platform chat application based on Rocket.Chat.  
It offers features such as login and logout, sending and receiving messages, notifications, group chats (channels/rooms), direct chats, leaving rooms, hiding rooms, unread messages, systray for desktop, and a kirigami-based UI.
It offers features such as login and logout, sending and receiving messages, notifications, group chats (channels/rooms), direct chats, leaving rooms, hiding rooms, unread messages, systray for desktop, and a kirigami-based UI.


Line 17: Line 18:
*[https://github.com/KDE/ruqola/commits?author=VasudhaMathur/ Commits made by me]
*[https://github.com/KDE/ruqola/commits?author=VasudhaMathur/ Commits made by me]
*[https://github.com/RocketChat/Rocket.Chat/issues/7413/ Issues made by me]
*[https://github.com/RocketChat/Rocket.Chat/issues/7413/ Issues made by me]
=== Bugs assigned to me ===
*[https://bugs.kde.org/buglist.cgi?quicksearch=ruqola&list_id=1460750/  Bug list]
=== Future Work ===
*Add functionality for creating and joining new channels.
*Allow to invite members to a channel.
*Support for deleting and updating messages.
*Support for replying to messages.
*Adding attachments works partially for now.
*Pin/unpin and starring messages.
*Favoriting rooms.
*Add support for emoticons and reactions.
*Give more love to the UI.


== Blog Posts ==  
== Blog Posts ==  
Line 24: Line 40:
*[https://vasudhamathur.wordpress.com/2017/06/19/network-management/ Network Management]
*[https://vasudhamathur.wordpress.com/2017/06/19/network-management/ Network Management]
*[https://vasudhamathur.wordpress.com/2017/07/05/adding-federated-loginoauth2-support/ Federated Login]  
*[https://vasudhamathur.wordpress.com/2017/07/05/adding-federated-loginoauth2-support/ Federated Login]  
*[https://vasudhamathur.wordpress.com/2017/08/25/ruqola-installation// Ruqola Installation]


== Screenshots ==  
== Screenshots ==  
[https://github.com/VasudhaMathur/Ruqola-before-GSoC-screenshots/ Here] you can have a look at what Ruqola looked like when I started working on it.
'''1. Login Page'''
Ruqola provides user login using username and password combination. It uses an authentication token which is saved locally in order to automatically authenticate the user the next time he tries to use the client.
Ruqola will also support federated login (using OAuth2) as soon as Rocket.Chat provides an API  for it ([https://github.com/RocketChat/Rocket.Chat/issues/7413/ Issue#7413])
[[File:Ruqola-login-page.png]]
'''2. Support for rooms, system tray and a kirigami-UI''' 
There are a lot of things to notice in this screenshot. Let's get them one by one.
* '''Rooms''': A room can be a channel or a group. Usually there are 'public channels' and 'private groups'. Features for rooms include-
** Leaving a room
** Hiding a room
* '''System tray''': (For desktop) Enables a systray used to minimize or maximize the application, and to display notifications. On closing the application from the "cross" at top right corner does not close the application, but minimizes it to the systray. It contains a menu having an option to Quit, by which the application is actually closed.
* '''Kirigami UI''': Ruqola uses Kirigami for its user interface. (A big hug to the Kirigami guys :D )
[[File:Ruqola-main-screen.png]]
'''3. Support for hiding and leaving a room'''
[[File:Ruqola-leaving-room.png]]




== Working Demo ==
'''4. Private chat and unread messages'''
* '''Direct chat''': This enables one-to-one direct chat between two users.


* '''Support for unread messages''': Room containing unread messages is highlighted in bold and also displays the number of unread messages for that room.
[[File:Unread-messages-pc.png]]


'''5. Global drawer having options for changing preferences, logging out, and quitting the application.''' 
[[File:Ruqola-global-drawer.png]]
== Contact Info ==
== Contact Info ==
'''Telegram Nick''' : vasudha_mathur
'''Telegram Nick''' : vasudha_mathur  
 
'''E-mail''' : [email protected]
'''E-mail''' : [email protected]

Latest revision as of 19:51, 27 August 2017

Ruqola

Ruqola is a Qt interface to Rocket Chat, with a library implementing DDP semantics, and a Kirigami UI for both desktop and mobile. The application is a QML/C++/Qt app, thus providing multi-platform portability. There is currently no native Rocket.Chat client; Ruqola is the first generic cross-platform chat application based on Rocket.Chat.

It offers features such as login and logout, sending and receiving messages, notifications, group chats (channels/rooms), direct chats, leaving rooms, hiding rooms, unread messages, systray for desktop, and a kirigami-based UI.

Work Report

Repositories

Installation

Commits and Issues

Bugs assigned to me

Future Work

  • Add functionality for creating and joining new channels.
  • Allow to invite members to a channel.
  • Support for deleting and updating messages.
  • Support for replying to messages.
  • Adding attachments works partially for now.
  • Pin/unpin and starring messages.
  • Favoriting rooms.
  • Add support for emoticons and reactions.
  • Give more love to the UI.

Blog Posts

Screenshots

Here you can have a look at what Ruqola looked like when I started working on it.

1. Login Page Ruqola provides user login using username and password combination. It uses an authentication token which is saved locally in order to automatically authenticate the user the next time he tries to use the client. Ruqola will also support federated login (using OAuth2) as soon as Rocket.Chat provides an API for it (Issue#7413)


2. Support for rooms, system tray and a kirigami-UI

There are a lot of things to notice in this screenshot. Let's get them one by one.

  • Rooms: A room can be a channel or a group. Usually there are 'public channels' and 'private groups'. Features for rooms include-
    • Leaving a room
    • Hiding a room
  • System tray: (For desktop) Enables a systray used to minimize or maximize the application, and to display notifications. On closing the application from the "cross" at top right corner does not close the application, but minimizes it to the systray. It contains a menu having an option to Quit, by which the application is actually closed.
  • Kirigami UI: Ruqola uses Kirigami for its user interface. (A big hug to the Kirigami guys :D )



3. Support for hiding and leaving a room



4. Private chat and unread messages

  • Direct chat: This enables one-to-one direct chat between two users.
  • Support for unread messages: Room containing unread messages is highlighted in bold and also displays the number of unread messages for that room.



5. Global drawer having options for changing preferences, logging out, and quitting the application.


Contact Info

Telegram Nick : vasudha_mathur

E-mail : [email protected]