Rokono Control

MentorKristiforMilchev (KristiforMilchev)
Project Websitehttps://rokonocontrol.com/
Project Repositoryhttps://github.com/KristiforMilchev/RokonoControl
Suitable for Beginners?yes
TagsC# asp.net core Syncfusion Javascrip CSS HTML Project Management Software Cross Platform Kanban Boards Git Enterprise Integrations
Stateaccepted
Applications (1st Choice)4 (4 submitted | 0 in-progress)
Applications (2nd Choice)4 (4 submitted | 0 in-progress)
Code of Conducthttps://github.com/KristiforMilchev/RokonoControl/blob/master/CODE_OF_CONDUCT.md
LicenseNon-Profit Open Software License 3.0 (NPOSL-3.0)

Project Description

FOSSA Status

Rokono Control is an open source project management system that combines lots of different features. Its based over the agile project management metodologies and the default planning workflow follows the pattern of Epic->Feature->User Story -> Task | Bug | Issue. It offers dynamic user interface allowing to manage multiple projects at the same time, assign team members, manage member rights. One of its core features is to connect team members while allowing agile workflow during the development of the product that you're working on, thus we are integrating internal messaging systems so you can connect with your team members without the use of third party applications. I am also working on personalized experiences so that developers can focus on their work while administrators focus on user rights management and managers can focus on planning boards and investors can focus on dashboards with charts that show their project progress. The software comes with a set of tools that allow server administrators to easily backup all projects and move them to a different server instance on the fly.

The software is still in active development and is not officially released modules brake from day to day while i work on it so if you're using a build that is working for you
at the moment please do not update it daily if you don't want to get some changes that might brake your workflow. Some of the mentioned features and other that aren't added to the readme are still in early development stage and are not part of the Repository

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.

Prerequisites

What things you need to install the software and how to install them

The project is created using asp.net core 3.1, its not based on blazor because its a version that is being migrated from asp.net core v 1.0 so you need to get the proper runtime from Microsoft.
The Database Layer is written in entity framework core using Database First approach.
Currently we offer two database files that are inside the RokonoContol/Platform directory MSSQLGenerationScript.sql contains the creations scripts for MSSQL server
and MySqlDatabaseGenerationScript.sql contains the scripts for MySql databases, currently the default database that is used for testing is MSSQL so if you're doing a clone make sure to scaffold your proper database.

In order to install .net core runtime go to this link https://dotnet.microsoft.com/download all UI components are delivered trough CDN but if you'd like you can go and download them from Syncfusion

Database of your choice either MSSQL or MySql.

Installing

-You can easily get the system running, all you need to do in order to get started is to install the dependencies mentioned above and then you need to navigate to the root directory of the project
open up powershell on windows or any terminal on your favorite linux distribution and execute the following command cd Platform && dotnet -c Release -r target patform for linux (linux-x64)
-Once that is done you need to navigate to /Platform/bin/Release/netcoreapp3.1/publish take the content of that folder and deploy it on your favorite server like NGINX
-Edit the configuration file inside NGINX create a systemctl service to start automatically under linux https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/linux-nginx?view=aspnetcore-3.1 here is a good tutorial by Microsoft

The last step is to deploy your database either by adding it to an existing server or installing either MSSQL or MySQL server.

Important for those that can't install a MSSQL or MYSQL server

We offer an account just for the program at our development server you can use the following credentials. Its a MSSQL instances so in order to connect to the server you will need either SSMS under windows or Azure Data Studio under linux

Address: 84.54.185.144
username: RGSOC
password: EmkV3*eRjVbZ0!KpKlDHX

It is a development server hosted by us, please do not touch the work items related to the public planning boards of the project, any changes in the schema must be first discussed with me. Mistakes aren't fatal as we have daily backups but lets not waste a hour of our time.

Once you have installed or deployed server its time to deploy the database, you can do that by navigating inside the cloned project folder then click on the folder named Platform and find the corresponding creation script for your database environment.

-For MySql use: MySqlDatabaseGenerationScript.sql
-For MSSQL use: MSSQLGenerationScript.sql

If its all setup its time to scaffold your context in order to connect everything together, the project uses database first approach so its important to scaffold the database when you're deploying on a new hosting environment it might work without it just by changing the connection string although i advise of doing a fresh scaffold each time you upgrade.

For MSSQL Server use this guide:
https://www.entityframeworktutorial.net/efcore/create-model-for-existing-database-in-ef-core.aspx
For MySQL:
Use the same guide but change Microsoft.EntityFrameworkCore.SqlServer to Pomelo.EntityFrameworkCore.MySql
Detailed guide if you're converting the databases to use another engine or server can be found here :
https://docs.microsoft.com/en-us/ef/core/providers/?tabs=dotnet-core-cli

Deploying

The last step is to initialize the default server configuration, go to the rokono-cl folder. Make sure that you build the tool and deploying only on the hosting environment, do not give access to people that don't have administrative status as this tool can manage all projects deployed on the system.

Once you have deploying the tool use rokono-cl --Help for the full set of commands, make sure that you create remote administrator account, initialize default project setups and you should be ready to login create your first project

Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

For a list of planned features and tasks you can view the project public board at:

https://platform.rokonocontrol.com/Boards/PublicBoard?projectId=5012&iteration=1004&person=0

Authors

See also the list of contributors who participated in this project.

License

This project is licensed under the Non-Profit Open Software License 3.0 (NPOSL-3.0) - see the LICENSE.md file for details

FOSSA Status

Project's Requirements

Nothing is mandatory i will help out with but the technology stack is:

Html/CSS for basic markup (we use controls)

Syncfusion EJ2 written in es5:

Javascript.

asp.net core (C#) for the backend developers

Entity Framework core

LIQN

Tasks And Features

This month i was going to focus on clearing all the bugs from the planning module and implementing all the dashboard features. There are few visual bugs at the moment that exist in the backlogs page, sprints have to have a better UX/UI experience because i feel its a bit confusing at the moment. In the Dashboard page i have planned to have a sliding panel on the right side of the screen that gives the user the option to choose a style of chart then decide to what type of predefined datasource he will bind to the chart, the idea is to give the user the option to choose how to view his own dashboard. I have also planned a developer account type so developers can see a limited version of the platform, for example maybe when a user is logged as developer he doesn't get access to the planner but rather a page with the tasks that are assigned to him but this will be discussed further at a later stage.

Iteration 1 ends at 1 April

Backlog

Email Report button - should be able to generate an email report with the status of all tasks and stories in the current active iteration and send it to all accounts assigned to a given project with the status of investor/general menages.


Expot work items button - should be visible to only accounts with status of administrator, on click it should export the selected backlog to both xls, csv and json.


View as board - it should show the backlog as a Kanban board


Work Items


Open in Queries, should open the list of work items that is being presented as a query - Queries module is still not implemented yet!!


Import work items button - should be visible and usable only to people with administrator account. Should able to open a modal that allows the user to pick a file from the machine that he is on that contains a collection of exported work items, should allow to pick up only type of JSON.


Recycle Bin button - should be able to delete all work items from the grid that have been checked with a box, once they are removed from the grid it should send xhr request to the backed in order to dispose the selected work items.


Add new work item drop down panel- width should be adjusted to be equal to the width of the button


Planning boards

All cards should follow the implemented template in the sprints kanban board, showing their owner, work item type icon, color and the description should be limited to 400 characters


The dropdown should be upgraded to Syncfusio ej2 Dropdown so that we can follow the new design language of the platform.


The alert on changing work item type should be removed.


Project Dashboard


Add panels functionality should be changed to open a sliding panel on the right side of the screen, the sliding panel should load a set of predefined widgets that are available to the user. Upon clicking the widget it should open a menu with options of binding a data source once the source is selected from the menu the widget should be be added as a panel inside the movable dashboard and saved in the database for the logged user the next time he opens the dashboard


Planned widget 1: Burn down chart - should take a basic 2 line chart from the syncfusion controls the chart should be created with the option to be injected inside the dashboard panel


Project Users burn down: should user a standard grid with all the users assigned to the project once selected it should bind the grid to the dashboard in its own panel the grid should show image or letter of the user, his email, work items count and assigned position.


Project Tests: This should also be a grid containing all assigned Unit tests in the project it should have a buttom at the bottom that would allow the manager to run all the tests and check if some of them are failing it should return the response back to the panel on click.


Quick chat box: this widget has 3 variations: first allows to bind a chat room, the second allows to bring the whole messenger inside the dashboard as it will show a list of project users on click of user it should show the chat box load the conversation with that user if any and give all the functionality for direct messaging. The third variation would be to load a grid with all chat rooms on click the result should be the same as variation two


Git commits : should be able to get a grid will all the commits in the project repository, allowing the manager to go over the change sheet changes on click

Work items count: a simple panel containing active work items count, closed work items count, resolved work items count and assassinated/new work items count. Could have 7 variations, for filtering only Epics, Features, User Stories,Tasks, Bugs, Issues, Tests

For more detailed information the people interested in joining my team would be granted access to our personal hosted version of Rokono Contol that we use to plan the development of Rokono Control and assign tasks to team members discuss and develop new ideas together

For a detailed list of tasks you can check our public board here:

https://platform.rokonocontrol.com/Boards/PublicBoard?projectId=5012&iteration=1004&person=0

If you are thinking of applying to this project for RGSoC 2020 and have any questions, feel free to contact the project mentor by leaving a comment below or using the following channels:

Comments

You must be logged in to comment on this project.


Kratika Gupta, Monday, March 30, 11:48 UTC

We are from team codehers. We are keen learners and have made website using HTML, CSS and JS. We are ready to learn anything new and implement it. Looking forward for your guidance


92612ShiyuQiu, Thursday, March 26, 03:16 UTC

Hi, we are Shiyu and Qian from team 200OK_SQQZ, we are interested in this project and already sent an email and join the discord channel. We are looking forwards to further instructions on the environment setup. Thank you!


tea-n-biccies RGSoC, Friday, March 20, 13:41 UTC

Dear RGSoC applicants - we have added a new FAQ page to the website. Please check this out before asking mentors your questions, as we may already have an answer for you :)
https://railsgirlssummerofcode.org/students/faq

Further details of how to apply to RGSoC (by 23:00 UTC on 30 March 2020) can be found at https://railsgirlssummerofcode.org/students


areeshatariq, Tuesday, March 17, 12:48 UTC

HI, I am Areesha Tariq and my team member is Hadiqa Alamdar Bukhari. We know HTML CSS JavaScript. We are highly interested in this project. Kindly help us get started. Thanks :)


KristiforMilchev, Tuesday, March 10, 14:12 UTC

Hello Monika, Jha,

I'd be happy to work with you, your skills are not important to the project as i have prepared an intensive boost program that will walk you trough the whole project and get you ready to write code within a month in the field of work that you decide to focus on. Its a pretty diverse project, from writing frontend with syncfusion to the backend architecture, data layer development with entity framework core and lastly the micro service architecture that handles git enterprise server integrations, email notifications and our live chat systems with hosted conference rooms in the future.

Usually how i planned on proceeding is that i sit down with each person on the team and we go on to discuss his interest in the software development field, then i will pick few topics that are relevant to field of work. We will both go together over all the tasks relevant to the field of work weather it will be frontend development or backend that is entirely up to you and we will discuss the possible solutions with examples. Once we are done with discussions regarding roles we will go over a brief lecture that is focused on angle project management as it is mandatory that each team member knows what we are creating, its a really valuable skill to have in any company these days and the core function of our software. At last we will assign tasks to each member, i will help with each task that can't be completed via live share so the project can move on and you can benefit by solving the problem first hand.

In order to get started join the discord channel or write back on my email pointed at the bottom of this page, clone the project on github and then hit me up on either email or discord so i can give you a call and walk you over all the steps in order to setup your development environment .

You can also look at some tasks that are currently available at the project public board and pick something that you want to do in the future.

Everything best, K.Milchev


Monika Jha, Tuesday, March 10, 12:48 UTC

Hello ,
We are team luce and we only know HTML and a bit of CSS . According to you should we apply for it? as the above tech-stack is alien to us (till now).We are willing to learn though.