Git Product home page Git Product logo

dconsole's Introduction

ο»Ώ

website title image

πŸ‘‰ Dconsole a Debugging ToolπŸ‘ˆ

πŸ“Œ Introduction

A Cross platform tool to get multiple logs in one place with easily visualizable colors. A really useful debugging tool for developers with easy to use GUI scheme.

⭐ How to get started?

You can refer to the following articles on the basics of Git and Github and also contact the Project Mentors, in case you are stuck:

πŸ’₯ How to Contribute?

PRs Welcome Open Source Love svg2

  • Take a look at the Existing [Issues]
  • Wait for the Issue to be assigned to you after which you can start working on it.
  • Fork the Repo and create a Branch for any Issue that you are working upon.
  • Read the [Code of Conduct]
  • Create a Pull Request which will be promptly reviewed and suggestions would be added to improve it.
  • Add Screenshots to help us know what this Script is all about.

Instructions:

To start the go controller

cd Source/Controller/
go run .

To start Client

cd Source/Shared
npm install
npm run start

Communication Channel

For all project related doubts and guidance please join this discord channel

Discord Link

Roadmap

As of now simple socket message passing with Bare minimum UI works.

  • Multi language interface

  • Tabbed structure

  • More complex message structure

  • UI(High DPI, Widgets .. etc)

  • Tests

  • Color coded message

dconsole's People

Contributors

rajagopalan-gangadharan avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

dconsole's Issues

Core functionality

The main objective of this module is to pipe outputs from stderr and stdout into the app, while this is fairly easy in linux, windows needs a long hack.

So the objective is to create a core functionality that will pipe the streams outputs separately at a binary level (Not language level i.e. no code injection or replacing streams). The UI part is a separate module.

Subtasks

Windows

  • Find a way to pipe stderr and stdout in realtime ( Try using screen buffer rather than pipes ) (Difficult:15)

Linux

  • Launch application with flags that redirect data to sockets (Difficult:15)

Common

  • Same format that will be handled in UI part for displaying (Intermediate:10)

  • Signals and support/Callback functions (Intermediate:10)

Create Installer

Each of these is a separate sub task:

  1. bat/setup to install DConsole and options(Yes/No) to install specific interfaces. For. e.g. if user chooses python only then install python interface only, ignoring the cpp interface.

  2. sh script for mac and unix ( Can be done separately as well) - something similar to windows automated install script. This should make the DConsole executable added to the global binary path and install required headers for interfaces according to user choice.

Add CONTRIBUTING.md

Add CONTRIBUTING.md File

As this project is a part of an Open Source Program NJACK Winter of Code I would recommend to have a contribution guidelines file (CONTRIBUTING.md) to assist beginners to get started with open source contribution.

Points to be covered in the guideline :

  • How to pull your first request.
  • How to create issue.
  • Some general rules to keep in mind while contributing to an open source project.
  • Links of some tutorials which will help beginners to learn the basics of git and github.

UI

The UI I have in mind is a simple window that works along with Core(The backend that does the piping work) user should be able to create tabs and color code from separate streams. UI can be implemented with cross platform UI frameworks like Qt and/or using specific C/C++ API for respective platforms.

Sub tasks ( Windows/Linux gtk)

  • Window Creation (Intermediate:10)

  • Window widgets(Tab structure, Menu bar) (Intermediate:10)

  • Application launch menu ( browse path of executable and run with flags ) (Intermediate:10)

  • Stdout reciever (per app basis) (Difficult:15)

  • Stderr reciever (per app basis) (Difficult:15)

  • Color code message (Beginner:5)

image

Proof of concept

Add simple tests

Write small test cases with the QtTest framework, by using dummy applications for interfacing.

Add search option

Add a global search bar and display all found results in a separate window.

Replace select with poll

Select method is used to look for incoming messages and connections, this is old and not safe - instead switch it to using modern API's like poll()

Add banner of crosswoc to the readme file

I will add banner of crosswoc to the readme file so that, People will know it is associated to crosswoc.
Moreover, I will associate link of the crosswoc website to its banner such that, if someone clicks the banner on readme file, it will redirect them to the website of crosswoc.

Java Interface

To receive messages from applications running on java an interface must be written ( refer Interface/cpp and Interface/python to see what is required).

Use MachPorts or better IPC specific for MacOS

Currently macOS port shares with the unix port(UNIX sockets) which has lot of compatibility issues, hence find an appropriate IPC and implement. Adding idea will also be appreciated.

Readme Updation and Code of Conduct

Currently, the readme is not having a getting started guide so a beginner will find it difficult to contribute to the project.
Also, I wish to add badges which will keep real-time track of pull request opened, closed, issues open and closed so it will use for you to manage
So can I go for it @RAJAGOPALAN-GANGADHARAN

Also The project is currently missing the Code of Conduct file which is important for open source project
So can I go for it

Move everything from unix to linux

The code was written in the assumption that unix codebase will be common to both mac and linux, But it proved to be difficult than expected. Hence move all the files from unix directory to linux directory. Verify that it compiles by making appropriate changes in CMakeLists.txt

Fix UI MacOS

The UI is written with Qt C++, Investigate why the UI bugs out specifically in MacOS.

Add Issue template

The project does not have an issue template to raise new issues in a format.

Add issue template

Can I make issue templates to enhance the workflow of the repository?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.