GSoC/2017/StatusReports/Vasudha: Difference between revisions

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


* About 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.
* Work Report
There is currently no native Rocket.Chat client; Ruqola is the first generic cross-platform chat application based on Rocket.Chat.
:* Blog Posts


----
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.


== '''Ruqola [[File:systray.png|border|50x50px]]''' ==
== Work Report ==


Ruqola is a Qt interface to Rocket Chat, with a library implementing DDP semantics, and a QML UI for both desktop and mobile phones. The application is a QML/C++/Qt app, thus providing multi-platform portability. Currently there is no native Rocket.Chat client; Ruqola will be the first generic chat application based on Rocket.Chat.
=== Repositories ===
*[https://cgit.kde.org/ruqola.git// Main Repository on KDE]
*[https://github.com/KDE/ruqola/ GitHub Mirror]


This project will consist in designing and developing a chat application for WikiToLearn. New features such as adding notification support through the whole application, creating a more complex model for messages (e.g. support for reactions, images, and advanced features), network management, adding OAuth/federated login support for both desktop and mobile app, provide a UI which works for all servers will be implemented.
=== Installation ===
*[https://vasudhamathur.wordpress.com/2017/08/25/ruqola-installation// Building and running Ruqola]


----
=== Commits and Issues ===  
<div id="Work Report"> </div>
*[https://github.com/KDE/ruqola/commits?author=VasudhaMathur/ Commits made by me]
== '''Work Reports''' ==
*[https://github.com/RocketChat/Rocket.Chat/issues/7413/ Issues made by me]


Website - https://vasudhamathur.github.io/  
=== Bugs assigned to me ===
*[https://bugs.kde.org/buglist.cgi?quicksearch=ruqola&list_id=1460750/  Bug list]
=== Future Work ===


Blog - https://vasudhamathur.wordpress.com/
*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 ==
*[https://vasudhamathur.wordpress.com/2017/05/06/before-gsoc/ Before GSoC]
*[https://vasudhamathur.wordpress.com/2017/05/29/during-gsoc/ During GSoC]
*[https://vasudhamathur.wordpress.com/2017/06/06/week-1-report/ Extending Data Models]
*[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/08/25/ruqola-installation// Ruqola Installation]
 
== 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]]
 
 
'''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 ==
'''Telegram Nick''' : vasudha_mathur
 
'''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]