Welcome to the README for the Issue Tracker, a web application for managing issues and tasks efficiently. This application is built using modern web development technologies and tools to provide a seamless experience for tracking, managing, and collaborating on issues.
The Issue Tracker is built using the following technologies and tools:
- React Hook Form: A library for handling form input and validation.
- Prisma: An ORM for working with databases, in this case, PostgreSQL.
- Radix UI: A collection of UI primitives for building robust user interfaces.
- Sentry: A powerful error tracking and monitoring tool.
- React Query: A data-fetching library to handle complex data requirements.
- Axios: A promise-based HTTP client for making network requests.
- Next.js: A popular React framework for server-side rendering (SSR).
- NextAuth.js: An authentication library for Next.js applications.
- React: A JavaScript library for building user interfaces.
- Recharts: A charting library for creating data visualizations.
- Zod: A runtime type checking library for TypeScript.
- TypeScript: A statically-typed superset of JavaScript.
- PostgreSQL: A powerful, open-source relational database system.
The Issue Tracker offers the following key features:
- Add Issue: Create and submit new issues.
- Edit Issue: Modify existing issue details.
- Delete Issue: Remove issues that are no longer relevant.
- Update Status of Issue: Change the status of an issue (OPEN, IN_PROGRESS, CLOSED).
- Assign Issue to Users: Assign issues to specific users for accountability.
- Server-Side Rendering (SSR): Improved performance and SEO.
- Pagination: Easily navigate through a large number of issues.
- React Caching: Efficiently manage data and reduce network requests.
- Filtering: Filter issues based on various criteria.
- Sorting: Sort issues by different attributes.
- Markdown Editor for Issue: Add formatted descriptions using Markdown.
The application uses the following Prisma models to represent data in the database:
Model | Description |
---|---|
Issue |
Represents an issue with title, description, and status. |
Account |
Represents user accounts for authentication. |
Session |
Represents user sessions for authentication. |
User |
Represents application users. |
VerificationToken |
Represents verification tokens. |
The Issue
model has an associated enum type Status
with values OPEN
, IN_PROGRESS
, and CLOSED
.
To run the Issue Tracker application, you will need to set the following environment variables:
POSTGRES_PRISMA_URL
: The URL to connect to the PostgreSQL database using Prisma.POSTGRES_URL_NON_POOLING
: An alternative PostgreSQL URL for non-pooling.NEXTAUTH_URL
: The URL of your Next.js application for authentication.NEXTAUTH_SECRET
: A secret key for NextAuth.js.GOOGLE_CLIENT_ID
: Your Google OAuth client ID.GOOGLE_CLIENT_SECRET
: Your Google OAuth client secret.
The Issue Tracker is a versatile web application built with modern tools and technologies to streamline issue management and collaboration. It offers a robust set of features, efficient data handling, and a user-friendly interface. Get started by setting up the environment variables and exploring the power of issue tracking with this application.