/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

Primary LanguageC#Apache License 2.0Apache-2.0

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