Skip to content

kambereBr/issue-tracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Issue Tracker

A full-stack application for tracking issues, built with Node.js, Express, SQLite, React, and TypeScript.

Table of Contents

  1. Overview
  2. Features
  3. Technologies
  4. Getting Started
  5. API Documentation
  6. Client Usage
  7. Testing
  8. Contributing
  9. License
  10. Contact

Overview

This project is a simple Issue Tracker that allows users to manage issues with basic CRUD (Create, Read, Update, Delete) operations. It includes a RESTful API built with Node.js and Express, and a client-side application built with React and TypeScript.

Features

  • Create issues with a title and description.
  • Read issues from the database.
  • Update issue titles and descriptions inline.
  • Delete issues.
  • Real-time updates to the UI after editing issues.
  • Mandatory fields for issue title and description.
  • Responsive design.

Technologies

Backend (API)

  • Node.js
  • Express.js
  • TypeScript

Frontend (Client)

  • React
  • TypeScript
  • CSS (for styling)

Getting Started

Prerequisites

Ensure you have the following installed:

Installation

Clone the repository:

git clone https://github.com/kambereBr/issue-tracker.git
cd issue-tracker

Running the API

  • Navigate to the api directory:
cd api
  • Install dependencies:
npm install
  • Start the server:
npx ts-node src/index.ts

The server should now be running at http://localhost:4000

Running the Client

  • Open a new terminal window and navigate to the client directory:
cd client
  • Install dependencies:
npm install
  • Start the React development server:
npm start

The client should now be running at http://localhost:3000

API Documentation

Endpoints

  • GET /issues - Retrieve all issues.
  • POST /issues - Create a new issue.
  • PUT /issues/:id - Update an existing issue.
  • DELETE /issues/:id - Delete an issue

Sample Requests

  • Get All Issues
curl -X GET http://localhost:4000/issues
  • Create a New Issue
curl -X POST http://localhost:4000/issues \
-H "Content-Type: application/json" \
-d '{"title": "New Issue", "description": "Issue description"}'
  • Update an Issue
curl -X PUT http://localhost:4000/issues/1 \
-H "Content-Type: application/json" \
-d '{"title": "Updated Issue", "description": "Updated description"}'
  • Delete an Issue
curl -X DELETE http://localhost:4000/issues/1

Client Usage

The client-side application allows users to interact with the Issue Tracker visually. Add a New Issue, Edit an Issue, and Delete an Issue

Testing

Backend Tests

The backend includes unit tests for the API endpoints. To run the tests:

  • Ensure you are in the api directory:
cd api
  • Run the tests:
npx jest

Contributing

Contributions are welcome! If you'd like to contribute, please fork the repository and make changes as you'd like. Pull requests are warmly welcomed.

License

This project is MIT licensed.

Contact

About

A full-stack application for tracking issues

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published