Frontend for the project is here: https://github.com/piratinskii/Ticket-System-Frontend
OpenSource TicketSystem is a simple and intuitive ticketing system with a basic web interface, developed as a pet project. The backend is written in FastAPI (Python), and the frontend is developed using VueJS (JavaScript). The project is in the early stages of development and provides essential features for ticket management.
- User Authentication and Registration: Users can register and log in to the system to manage tickets.
- Ticket Creation: Users can create new tickets with all necessary details.
- Ticket Viewing: Ability to view the details of a ticket.
- Ticket Closure: Users can close tickets once the issue is resolved.
- Ticket Assignment: Tickets can be assigned to specific users for resolution.
- Ticket List: View all tickets in the system.
- Ticket Search: Ability to search for tickets by title, creation time, and other fields.
- Complete User Interface: Develop a fully functional user interface.
- Integrations: Integrate with messengers and other systems for ticket creation.
- Lifecycle Management: Manage the entire lifecycle of a ticket.
- Notifications: Send notifications about ticket updates via email or messengers.
- Role-Based Access Control: Introduce role-based access control to manage user permissions and access levels.
This porject uses:
- FastAPI
- FastAPI Users
- SQLAlchemy
- Uvicorn
- PyDantic
- SQLite
Full list of dependencies is in requirement.txt
-
Clone the repository (use these commands in the terminal):
git clone https://github.com/piratinskii/Ticket-System-Backend.git
cd Ticket-System-Backend
-
(Optional) Create a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows, use `venv\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt
-
Generate SSL key and certificate for the server (better to use singed certificate instead of this step):
python ssl_generator.py
orpython3 ssl_generator.py
Run the server:
uvicorn main:app --ssl-keyfile=server.key --ssl-certfile=server.crt
Check the documentation:
https://127.0.0.1:8000/docs
in your browser
If there are no users in the database, the program automatically creates a user with the following credentials:
- Email: [email protected]
- Password: admin