Git Product home page Git Product logo

johnytomogavk / globalhub Goto Github PK

View Code? Open in Web Editor NEW
7.0 1.0 1.0 2.53 MB

Global Hub is personal organizer with functionality of time tracking, note taking, tasks scheduling and budget planning. The app created using React and ASP.NET Web API and uses micrcoservice architecture

License: Apache License 2.0

TypeScript 35.53% HTML 1.67% SCSS 1.21% JavaScript 0.38% C# 60.19% Dockerfile 1.00% Makefile 0.02%
antd mongodb react webpack aspnet dotnet7 mobx-react elasticsearch entity-framework-core posgresql

globalhub's Introduction

๐ŸŒ Global Hub

The app is a personal organizer for managing your projects, tasks, budgets and notes.

๐Ÿ‘‰ There are 3 types of functionality:

  1. ๐Ÿ’ต Budgets
    • Storing expenses and incomings
    • Managing projects
    • Displaying current budget's balance
    • Calculation analytic on expenses by several parameters
  2. ๐Ÿ“˜ Notes
    • Light and Easy text editor (WYSIWYG)
    • Different types of blocks that you are able to use
  3. โ˜‘๏ธ Projects
    • Creating tasks and events
    • Grouping by projects
    • Table, Timeline and Kanban views for tasks displaying
    • Status transitions on tasks
    • Notifications on start and due dates
  4. ๐Ÿ”Ž Full-Text search across all your stuff

๐Ÿ”ง Architecture

The design based on microservice architecture with asynchronous communications
There are 3 functional microservices responsible for managing main entities like Budgets, Projects and Notes:\

  1. Notes Service
  2. Budgets Service
  3. Projects Service

Also there are microservices responsible for common functionality:

  1. API Gateway
  2. Identity Service
  3. Notification Service
  4. Full-Text Search Service

๐Ÿ‘จโ€๐Ÿ’ป Technical stack

  1. Backend: .NET 7, ASP.NET Web API, Duende Identity Server, MediatR, Hangfire, Entity Framework Core, MassTransit(over RabbitMQ), OData, Ocelot, SignalR
  2. Databases and storages: MS SQL Server, PostgreSQL, MongoDB, ElasticSearch
  3. Frontend: React, Typescript, Ant Design, Mobx, Styled Components, Webpack
  4. CI/CD: Teamcity(Independent build + deployment), Docker, Docker-compose

โฉ Getting started

Important

The makefile supposed to be used only for running App in demo mode.
For development purposes consider either running docker containers and configuring ports forwardings manually or running services in IDE

Running in demo mode using makefile

Before start ensure you have installed:

  1. Docker
  2. GNU Make utility
  1. Clone the repository to your local folder
  2. In GlobalHub/ directory create .env file using .env.template template, default values should be enough for app start.
  3. Run make up from GlobalHub/GlobalHub directory

๐Ÿ’ก Inspiration

  1. Notion
  2. Jira
  3. Money Keeper

๐Ÿง‘โ€๐Ÿคโ€๐Ÿง‘ Contributing

In case You are interested in contributing to the project, I would really appreciate it, if you could take care of some tasks from GlobalHub project.

globalhub's People

Contributors

johnytomogavk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

sidodji

globalhub's Issues

Add inheritance to notes

User should have possiblity to create hierarchy of notes, like below:

  1. Note 1
  2. Note 1.1
  3. Note1.2
    4. Note 1.2.1
  4. Note 3

Tab bar

Create tab bar at the top of the page that allows user to manage several entities at the same time

Improve notes' indexing

Currently the system indexes notes using @edjs/html parser. The issues is that the parser can't parse all types of block that are currently used, so user can't perform full-text searches across the entire note's content, but only across content that was parsed by the parser.
There are 2 possible solutions:

  1. Index html content extracted from DOM on save;
  2. Convert html content from DOM to plain text and index plain text

Configure Full-Text Index

User should be able to perform search queries across all his entities entering his requests in the input at the top of the page

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.