Skip to content

Vistores/IssueForge

Repository files navigation

IssueForge

IssueForge is a full-stack issue and work tracking application for small teams. It helps organize projects, work items, comments, assignments, team roles, activity logs and member statistics in private workspaces.

It combines a compact issue board, team workspaces, permissions, comments, assignments, attachments and activity tracking in a clean Angular + ASP.NET Core monorepo.

Tech Stack

  • Frontend: Angular, Angular routing, Angular forms, Angular CDK drag-and-drop
  • Backend: ASP.NET Core Web API
  • Database: SQLite with Entity Framework Core
  • API documentation: Swagger / OpenAPI
  • Authentication: local email/password auth, optional Google OAuth configuration
  • Styling: custom responsive CSS with a professional dark product interface
  • Version control: Git with a structured commit history

Features

  • Account registration and sign-in
  • Account deletion with shared-team ownership checks
  • Optional Google OAuth entry point when credentials are configured
  • Private team workspaces
  • Create teams or join by invite code/link
  • Delete a team when you are the owner
  • Transfer team ownership to another member with confirmation
  • Team-scoped projects, issues, comments, members and activity
  • Project CRUD: create, edit, delete and list projects
  • Issue CRUD: create, edit, delete and list issues
  • Issue preview modal with description, status, priority, assignees and comments
  • Issue attachments for screenshots, media, documents and text files
  • Add and delete comments directly from the issue preview modal
  • Kanban-style board with drag-and-drop status updates
  • Table view with inline status and priority editing
  • Filters by team, status, priority, project and assignee
  • Assignment controls with member avatars and quick "assign me" actions
  • Team member roles: Owner, Manager, Member, Commenter and Viewer
  • Team permissions for editing and assigning issues
  • Commenter role for users who can only leave task comments
  • Member issue limits
  • Member statistics page
  • Team activity log for issue and permission changes
  • Account profile page with avatar upload, drag/drop, paste and circular crop controls
  • Dashboard with total, open, fixed and critical issue counts
  • Recently updated issue list with update time and actor
  • Critical watchlist
  • Toast notifications, loading states and empty states
  • Professional dark workspace UI with readable surfaces, modals, tables and board cards
  • Polished modal workflows for issue creation, issue previews, team settings and account management
  • DTO-based API responses instead of exposing raw EF entities
  • Optional seed data for local development
  • CORS configuration for the Angular dev server
  • Docker Compose setup for local container runs
  • GitHub Actions workflow for backend and frontend build checks

Screenshots

Sign-In

Sign-in screen

Dashboard

Dashboard overview

Issue Board

Issue board

Issue Preview Modal

Issue preview modal

Issue Table

Issue table

Projects

Projects page

Teams

Team workspaces

Team Settings Modal

Team settings modal

Member Statistics

Member statistics page

Activity Log

Activity log page

Account

Account page

Public Testing and Releases

GitHub Releases are used for stable source-code snapshots. Each release includes the repository source archive and release notes with a recommended click-through testing flow.

For a public browser demo, deploy both parts of the app:

  • Frontend: Angular static build
  • Backend: ASP.NET Core Web API
  • Database: SQLite volume or a managed relational database

GitHub Releases are useful for downloading a versioned project snapshot, but they do not host the running backend or database by themselves.

Project Structure

IssueForge/
  backend/     ASP.NET Core Web API, EF Core models, DTOs, controllers and services
  frontend/    Angular app with routed pages, API services and custom CSS
  README.md
  .gitignore

Run the Backend

cd backend
dotnet restore
dotnet run --launch-profile http

The backend runs at:

  • API: http://localhost:5008/api
  • Swagger: http://localhost:5008/swagger

SQLite database file:

  • backend/issueforge.db

The database is created automatically on startup. Development seed data is enabled through configuration.

Local development seed account:

  • Email: alex.morgan@issueforge.local
  • Password: Demo123!

Run the Frontend

cd frontend
npm install
npm start

The Angular app runs at:

  • http://localhost:4200

Make sure the backend is running before using the frontend.

For CI-compatible installs, use:

cd frontend
npm ci
npm run build

Run with Docker Compose

docker compose up --build

Container URLs:

  • Frontend: http://localhost:4200
  • Backend API: http://localhost:5008/api
  • Swagger: http://localhost:5008/swagger

The Docker Compose setup stores SQLite data in the issueforge-data volume.

API Overview

Auth

  • GET /api/auth/status
  • POST /api/auth/register
  • POST /api/auth/login
  • POST /api/auth/logout
  • PUT /api/auth/account
  • DELETE /api/auth/account
  • GET /api/auth/google
  • GET /api/auth/google/callback

Teams

  • GET /api/teams
  • POST /api/teams
  • POST /api/teams/join
  • PUT /api/teams/{teamId}/members/{memberId}
  • POST /api/teams/{teamId}/transfer-owner
  • DELETE /api/teams/{teamId}
  • GET /api/teams/{teamId}/stats
  • GET /api/teams/{teamId}/activity

Projects

  • GET /api/projects
  • GET /api/projects/{id}
  • POST /api/projects
  • PUT /api/projects/{id}
  • DELETE /api/projects/{id}

Issues

  • GET /api/issues
  • GET /api/issues?status=Open&priority=High&projectId=1&assigneeId=2
  • GET /api/issues/{id}
  • POST /api/issues
  • PUT /api/issues/{id}
  • DELETE /api/issues/{id}

Comments

  • GET /api/issues/{issueId}/comments
  • POST /api/issues/{issueId}/comments
  • DELETE /api/issues/{issueId}/comments/{commentId}

Dashboard

  • GET /api/dashboard

Database Information

The backend uses Entity Framework Core with SQLite. The main entities are:

  • AppUser
  • Team
  • TeamMember
  • Project
  • Issue
  • IssueAssignment
  • Comment
  • ActivityLog

Issue statuses:

  • Open
  • InProgress
  • Fixed
  • Rejected

Issue priorities:

  • Low
  • Medium
  • High
  • Critical

What This Project Demonstrates

  • Angular standalone components and routing
  • Angular forms and typed API models
  • Angular CDK drag-and-drop
  • Reusable frontend API service layer
  • Modal-based CRUD flows
  • Loading, error and empty UI states
  • ASP.NET Core Web API controllers
  • EF Core relationships and SQLite persistence
  • DTOs for API boundaries
  • Team-scoped data access
  • Cookie-based authentication with production cookie hardening
  • Optional external OAuth integration point
  • Role-aware authorization checks for team actions, issue editing and comments
  • CRUD operations with proper HTTP status codes
  • Basic validation and error handling
  • Swagger/OpenAPI documentation
  • Clean monorepo organization
  • Practical Git workflow and commit history
  • Clear README and deployment-oriented project presentation
  • Docker Compose foundations
  • GitHub Actions build workflow for backend and frontend checks

Deployment Notes

  • Build the backend with dotnet publish -c Release.
  • Build the frontend with npm run build.
  • Configure the frontend API base URL for the deployed backend before hosting.
  • Set a production SQLite path or replace SQLite with a managed relational database.
  • Use HTTPS and a production identity provider before exposing the app publicly.
  • Store Google OAuth credentials and connection strings as environment secrets.
  • Run the GitHub Actions workflow before merging changes.

Privacy and Terms

These documents are included so the project can be reviewed as a realistic demo and prepared for a future hosted deployment. Review and adjust them before exposing a public demo.

Future Improvements

  • Production-grade JWT or external identity provider setup
  • Refresh tokens and stricter role-based authorization policies
  • Pagination, search and server-side sorting
  • Attachment previews with external object storage support
  • Rich text comments
  • Notifications for assignment and status changes
  • Unit and integration tests
  • API-level tests for team permissions and ownership transfer
  • Hosted production deployment

About

Full-stack issue tracker built with Angular, ASP.NET Core Web API, EF Core and SQLite.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors