From 094f63a7c66260d8bbcc531e61e626e093930501 Mon Sep 17 00:00:00 2001 From: MiqueiasBueno Date: Sun, 1 Jun 2025 14:58:56 -0400 Subject: [PATCH] first commit --- README.md | 253 +++++++++++++++++------------------------------------- 1 file changed, 81 insertions(+), 172 deletions(-) diff --git a/README.md b/README.md index 05726ba..0ceab00 100644 --- a/README.md +++ b/README.md @@ -1,209 +1,118 @@ - -
-

- - Trackit - -

Issue and Project Tracking System (DEMO)

+# 🚀 TrackIt - Dockerizado -

- Use Trackit! Tracking system that allows team members to collaborate, discuss and manage projects effectively -
-
-

-

+> Dockerização completa do projeto [TrackIt](https://github.com/Jenil-Vekaria/Trackit) feita por [MiqueiasBueno](https://github.com/MiqueiasBueno). - +## 📦 Sobre o Projeto -## ✨ Features +TrackIt é um sistema para rastreamento e gestão de tickets, projetos e usuários. +Esse repositório traz a aplicação **totalmente dockerizada**, facilitando o setup e deploy. -- Team management -- Project management -- Ticket management -- User assignment -- Project statistics -- Advanced searching -- Commenting -- Role based organization (Create custom permissions) -- Custom field creation -- Attachments (Not done yte) -- Change tracker (Not done yet) +--- - +## 🐳 Dockerização -## 🛠️Technologies +O projeto foi estruturado com: -| **Front-end** |


NextJs

|


Chakra UI

|


Axios

|


Zustand

| -| ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | -| **Back-end** |


NodeJs

|


ExpressJS

|


MongoDB

|


Jest

| +- ✅ Dockerfile para o frontend (Next.js) +- ✅ Dockerfile para o backend (Node.js + Express) +- ✅ MongoDB como banco de dados +- ✅ Orquestração via Docker Compose -##### Project will be dockerized soon +--- -## 🚀 Quick start +## 🚀 Como rodar localmente com Docker -Start developing locally. +### 1️⃣ Clone o repositório: -### Step 1: Download Node.js and MongoDB - -Download: [MongoDB](https://www.mongodb.com/try/download/community) -Download: [Node.js - 18.14.0](https://nodejs.org/en/) +```bash +git clone https://github.com/MiqueiasBueno/TrackIt.git +cd TrackIt +``` -### Step 2: Clone the repo +### 2️⃣ Crie os arquivos `.env`: -Fork the repository then clone it locally by doing +- Arquivo `.env` na raiz: -```sh -git clone https://github.com/Jenil-Vekaria/Trackit.git +```env +MONGO_URI=mongodb://mongo:27017/trackit +NEXT_PUBLIC_API_URL=http://localhost:5000 ``` -### Step 2: Install Dependencies +- Arquivo `.env` no backend (`/server`): -cd into the client and server directory, and install the dependencies - -```sh -cd client & npm install +```env +NODE_ENV=development +MONGO_URI=mongodb://mongo:27017/trackit +PORT=5000 +JWT_SECRET=6b8d882e-4dcb-4c3c-b4ea-8a6a7bff86e3 +JWT_TOKEN_EXPIRATION=1h ``` -```sh -cd server & npm install +- Arquivo `.env` no frontend (`/client`): + +```env +NEXT_PUBLIC_API_ENDPOINT=http://localhost:5000 ``` -### Step 3: Setup .env +### 3️⃣ Suba os containers: -To run the server, you will need the `.env` variables +```bash +docker-compose up --build +``` + +Aguarde até que os serviços estejam rodando. -Rename [.env.EXAMPLE](./server/.env.EXAMPLE) file to **.env** +--- -### Step 4: Seed database +## 🧠 **Povoar o Banco de Dados (Seed)** -Execute the following command to seed the database +Execute o comando abaixo para popular o banco com dados de teste (usuários, permissões, etc): -```sh -npm run seed +```bash +docker exec -it trackit_backend npm run seed ``` -##### Login Info +--- -| Email | Password | Role | Permissions | -| ---------------------------- | -------- | --------- | ---------------------------------- | -| james.smith@bugtracker.com | password | Admin | Manage admin page/projects/tickets | -| michael.smith@bugtracker.com | password | Developer | Manage projects/tickets | -| robert.smith@bugtracker.com | password | Submitter | Manage tickets | +## 🔑 **Informações de Login (Acesso de Teste)** -#### You are all setup! +| Email | Senha | Papel | Permissões | +| ----------------------------------- | --------- | ---------- | -------------------------------------------- | +| james.smith@bugtracker.com | password | Admin | Gerencia admin, projetos e tickets | +| michael.smith@bugtracker.com | password | Developer | Gerencia projetos e tickets | +| robert.smith@bugtracker.com | password | Submitter | Cria e gerencia tickets | -Run client application +--- -```sh -npm run dev -``` +## 🖥️ Acesso: + +- 🔗 Frontend: [http://localhost:3000](http://localhost:3000) +- 🔗 Backend API: [http://localhost:5000](http://localhost:5000) +- 🔗 MongoDB: [localhost:27017](mongodb://localhost:27017) -Run server application +--- -```sh -npm run start +## 🏗️ Estrutura de Pastas + +``` +TrackIt/ +├── client/ # Frontend (Next.js) +├── server/ # Backend (Node.js + Express) +├── docker-compose.yml +├── .env +└── README.md ``` -**Setup Issue?** -Create an issue in this repository - -### Give a ⭐, if you liked the project - -## 📸 Screenshots - -
-

Login

-

Log into the application with your credentials. If you don't have an account, click Sign Up to create a new account. Once you have logged in, you will be directed to projects page

- -
- -
-

View All Projects

-

You will find all the projects you have created or belong to. You can also search and sort the projects. Click on Add Project to create new project

- If your permissions doesn't allow you to manage project, "Add Project" will not be displayed - -
- -
-

Add Project

-

Enter your project information here (Title and description)

- -
- -
-

Add Project (Contributor)

-

Select all the project contributors. You will also see what type of role the user belong to.

- -
- -
-

View Project Info

-

Once you have created your project, you will see all your project tickets (intially none). You create new tickets, view project info and edit exisiting ticket.

- If your permissions doesn't allow you to manage tickets, "Add Ticket" will not be displayed - -
- -
-

Project Overview

-

Click on Overview to see the project statistics

- -
- -
-

View Ticket Info

-

Click on the existing ticket, you can edit the ticket info, add comment or update the ticket assignee

- If your permission doesn't allow you to manage tickets, all the fields, comments, assigness will be disabled - -
- -
-

View Ticket Comments

-

Click on comments tab, you will see all the ticket comments and you can also comment on it.

- If your permission doesn't allow you to manage comments, you will not be able to comment - -
- -
-

My Tickets

-

Click on Tickets tab to see all your tickets regarless of what project it belongs to. Clicking on the ticket will allow you to edit it

- -
- -
-

Admin - Manage Users

-

Click on Admin to manage the organization (Users, Roles, Custom Ticket Type)

-

Click on Manage User to manage all the users and their roles. Clicking on the user will allow you to update their role

- This tab will only be displayed if you are the admin - -
- -
-

Admin - Manage Roles

-

Manage Roles tab will display all the roles and their respective permissions. To create custom role, click on Add New Role

- -
- -
-

Admin - Manage Roles (Add)

-

You can create your custom role by giving a role name and selecting the types of allowed actions

- -
- -
-

Admin - Manage Ticket Types

-

You will see all the ticket types here. There are some pre-defined ticket types (Feature, Bug, Documentation, Support), but you may create custom ticket types by clicking on Add New Ticket Type

- -
- -
-

Admin - Manage Ticket Types (Add)

-

Create custom ticket type by giving ticket type name, selecting an icon, and the icon colour

- -
- -## Author - -- Github: [@Jenil-Vekara](https://github.com/Jenil-Vekaria) -- Portfolio: [Jenil-Vekaria.netlify.app](https://jenil-vekaria.netlify.app/) -- LinkedIn: [@JenilVekaria](https://www.linkedin.com/in/jenilvekaria/) +--- + +## 🙌 Créditos + +- Projeto original: [Jenil-Vekaria/Trackit](https://github.com/Jenil-Vekaria/Trackit) +- Dockerização: [MiqueiasBueno](https://github.com/MiqueiasBueno) + +--- + +## 🐙 Licença + +Distribuído sob a licença MIT.