/issue-tracker

A simple issue tracking solution for any kind of project. Including more than 80 login providers for every use case.

Primary LanguageTypeScript

This project is a work in progress. Everything is subject to change. Do not use this in production.

Issue Tracker

Get started   •   Discord

👋 Welcome

This project was made to create a simple issue tracker for any type of project. It aims to be user friendly and easy to use supporting more than 80 ways to log in using different providers.

🔨 Getting started

Preparing the database

This project is based around PostgreSQL. You can setup a local database or a remote one depending on your needs. You can find the downloads for local deployment here.

Getting dependencies

Make sure you have Node.js installed on your machine.

Clone the project

git clone https://github.com/kragleh/issue-tracker.git

Setup environment variables

cp .env.example .env

Set the corresponding values in the .env file. If not happy with the default provider, you can add a new sign in provider.

Install dependencies

npm install

# For production purposes
npm install -g pm2

Generate dependencies

npx prisma generate

Create database structure

npx prisma db push

Run the project in development mode

npm run dev

Then head to http://localhost:3000 and make sure everything is working.

Run the project in production mode

npm run build

# To run in the command line temporarily
npm run start

# To run in the background 24/7
pm2 start npm --name issue-tracker -- run start
pm2 save
pm2 startup

🖊️ Adding a new sign in provider

To add a new sign in provider, head here search for the provider you are looking for and follow the steps. To remove a provider, you can simply remove the provider from the providers array in the auth.ts file and the corresponding values in the .env file.

📋 TODO

Project features

  • Project page
    • Add more data
    • Cleanup code
  • Project issues
  • Moderate members
  • Project settings
  • View project issues
  • Project invites
  • Project roles (Future consideration)
  • Simple predefined member roles
    • Admin - Full power, can edit and see everything
    • Moderator - Can manage issues, members and moderate messages
    • Developer - Can manage issues
    • Member - Can create issues and interact with them

Issue features

  • Create issue
  • View issue
  • Add messages
  • Manage issue
  • Moderate issue
  • Moderate messages

Admin features

  • Dashboard page (Low Priority)
  • User page
    • View users
    • Manage users
      • Ban users
      • Promote users
      • Demote users
  • Projects page (Low Priority)
    • View projects
    • Manage projects
      • Edit project (Low Priority)
      • Delete project

Other

  • Home page
  • Issues page
  • Profile page
  • Theme switch
  • Auth
  • API Routes Optimization (Low Priority)

🤝 Contributing

Feel free to contribute to this project by opening an issue or a pull request.