Giter VIP home page Giter VIP logo

batts's Introduction

BATTS

Best Automated Ticket Tracking System

Never get lost in the ticketing jungle!

Description

BATTS is a ticketing system in development by students of Innopolis University

Its end goal is to unite all of the various ticketing systems that exist in Innopolis by developing a new, universal one written using more maintainable stack that php.

Features

Right now BATTS supports the very basics of ticketing: you can create groups and send tickets to them for processing.

Autorization is performed though Telegram.

BATTS is designed to be intuitive and simple to use. If you do not understand how to do X, open an issue and we will figure it out.

Demo

You can visit our deployed instance here: https://batts.tatar/

Be careful however, it updates frequently and we wipe it quite often

BATTS Home Screen BATTS Ticket View BATTS Groups UI

Technological Stack

The project, as of now, consists of the following components:

We put a lot of emphasis on keeping our technological stack modern and as usable as possible.

How to deploy

We provide dockerfiles and docker images for the backend and frontend. We also provide the Kubernetes manifests we use.

The only thing that we do not provide for you is PostHog deployment as it is best to follow their instructions as their product is massive.

[For customer] How to deploy for development purposes

If what you want is to deploy the app to develop it here is what you can do.

[For customer] Developing frontend

To try developing frontend you need to first set up the backend. For it you enter backend folder and use docker-compose up -d, it should build and make backend active.

Then you need to set up authorization. Since usual authorization does not work in dev environment set up a mock one.

First create a user:

curl -X PUT --location "http://localhost:3000/api/users/FDUeanyKADQEpyrydYn7XB" \
    -H "Content-Type: application/json" \
    -d "{
          \"profile\": {
            \"type\": \"Telegram\",
            \"id\": 123456,
            \"first_name\": \"Edward\",
            \"last_name\": \"Snowden\"
          }
        }"

The second step is to get a cookie for the created user:

curl -vvv -X POST --location "http://localhost:3000/api/fake-login/FDUeanyKADQEpyrydYn7XB"

The third step is to add this cookie to your browser. You would want a browser extension or addon for that.

In frontend directory create (or edit) .env file to contain:

BACKEND_URL=http://localhost:3000

After this you are good to use yarn and yarn dev and begin working on the frontend.

[For customer] Developing backend

In case you want to develop backend, the process is as follows:

First set up meilisearch:

docker run -it --rm \
           -p 7700:7700 \
           -e MEILI_ENV='development' \
           -d --name meilisearch \
           getmeili/meilisearch:v1.4

In the near future you may need to set up minio for object storage:

docker run -dt                                  \
  -p 9000:9000 -p 9090:9090                     \
  --name "minio_local"                          \
  minio server --console-address ":9090"

After this export the environment variable:

ENVIRONMENT=dev

Then you are good to use cargo run to build and run the backend.

[For customer] How to contribute

For now the project is in active development, but after that you may contribute to it by either forking it, or submitting issues and merge requests to cover them. Please make sure that your code at least passess relevant linters if you want it to be accepted and make sure to test your version locally for both desktop and mobile.

batts's People

Contributors

anatolay avatar dcnick3 avatar hismaj3sty avatar

Watchers

 avatar

batts's Issues

Deploy

Write Kubernetes manifests for deploying the backend and frontent & deploy it to nitori

  • deploy configurability
  • docker files
  • kubernetes manifests
  • Continuous Delivery (want to integrate it with ArgoCD, want a different repo?)

Make proper navigation

Currently, there is no navigation on the frontend at all, you have to manually enter the URL.

Obviously, this is not good, we need to have pages be actually reachable by following the links

Implement ticket modification

  • assigning (back)
  • assigning (front)
  • forwarding (back)
  • forwarding (front)
  • changing status (back)
  • changing status (front)
  • writing messages (back)
  • writing messages (front)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.