JohnyTomogavk / GlobalHub

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

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

About

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


Languages

Language:C# 60.2%Language:TypeScript 35.5%Language:HTML 1.7%Language:SCSS 1.2%Language:Dockerfile 1.0%Language:JavaScript 0.4%Language:Makefile 0.0%