Skip to content

SepehrHasanabadi/jira

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

We want to build a project from scratch like Jira. There, we will have the entity 'task.' The requirements for this entity are as follows:

In a task, there can be static fields (that users cannot remove or add, e.g., id, name, description, status) and 'custom-fields' that users can add as many as they want.

Custom fields can have different types: text, int, date, links to users, etc.

Users will perform CRUD operations, especially listing tasks and filtering them by combinations of static/custom fields.

We may have 1 million or more tasks in one company.

We opted for Elasticsearch as our database solution due to its ability to efficiently handle a large volume of tasks up to one million, to be precise each equipped with multiple custom fields. To streamline data retrieval and circumvent the need for repetitive joins between the task and custom fields tables, we leveraged a non-relational database approach.

We can leverage Elasticsearch's powerful search query capabilities to enhance our functionality. To run locally, initiating the command docker-compose up -d is essential. This command not only starts Elasticsearch but also launches the Kibana service, allowing us to monitor the data.

For the frontend, we harnessed the power of the Next.js framework complemented by the versatility of Tailwind CSS.

To initiate the backend, utilize the launch.json within the VSCode file, specifically tailored for the VSCode editor. Meanwhile, executing npm run dev brings the frontend to life. It's imperative to copy the .env-example file to the project's root, renaming it as .env for proper configuration.

alt text alt text alt text

About

Simple Issue tracker benefit from the ElasticSearch

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published