ProjectProposal - poweredbygrace/Practice_Repo_-Wiki- GitHub Wiki

Android IT Ticketing System

Project Proposal & Sprint Plan - CSTP 2205

Overview of the Project

The project entails creating an IT Ticketing System for Android. This system enables employees to submit IT support tickets through an Android app, while IT support personnel can access, update, and resolve these tickets. The app targets around 20 internal users and is being developed by a team of three developers within a 9-week timeframe across 3 focused sprints. The emphasis is on core features to streamline delivery and reduce complexity.

Project Scope

Inclusions:

  • Development of an Android app with Kotlin
  • Implementation of secure authentication using JWT and bcrypt
  • Functionality to create, view, update, and manage IT tickets
  • Backend REST web service built with Ktor
  • Utilization of a MongoDB Atlas cloud database
  • Role-based access control for end users, IT agents, and managers
  • Real-time ticket status updates and assignments
  • Comment system for ticket communication

Exclusions (Future Features):

  • Push notifications
  • File uploads and attachments
  • Web-based admin dashboard
  • Advanced analytics and reporting
  • Automated ticket routing

System Architecture

The system architecture is based on a client-server model. The Android app communicates with a backend web service via HTTPS using RESTful APIs. The backend manages authentication, business processes, and data retrieval, with all data stored in MongoDB Atlas.

Backend Web Service

The backend is created using Ktor, a lightweight Kotlin web framework designed for building asynchronous servers and clients. It offers RESTful endpoints for authentication and ticket management, implementing JWT (JSON Web Tokens) for secure session management and bcrypt for password hashing.

Database Setup

MongoDB Atlas serves as the cloud database solution, with four primary collections:

  • Users: Stores user credentials, roles, and profile information
  • Tickets: Contains all ticket data including status, priority, and assignments
  • Comments: Manages ticket conversation history and internal notes
  • Notifications: Tracks system notifications for users and agents

MongoDB was chosen for its adaptability, schema flexibility, seamless integration with Kotlin, and scalability for future growth.

Team Members

  • Bhupinder Singh Atwal - Android UI Development & User Experience
  • Michael Oteng-Adjei - Backend API Development & Database Configuration
  • Salvador Alcantara - Authentication Systems & Deployment

Project Timeline

The project spans 9 weeks, divided into three 3-week sprints with clearly defined deliverables and responsibilities.

Sprint 1: Foundation – Database, API & Authentication

Duration: Weeks 1–3

Story: MongoDB Database Design & REST API Endpoints (ITS-32, ITS-20, ITS-33, ITS-19)

  • Assignee: Michael Oteng-Adjei
  • Weight: 3/10

Design and implement MongoDB database structure with collections for users, tickets, comments, and notifications. Develop RESTful API endpoints using Ktor for ticket CRUD operations, including request validation, pagination, filtering, and error handling.

Story: Authentication & Session Management (ITS-6, ITS-7, ITS-18)

  • Assignee: Salvador Alcantara
  • Weight: 4/10

Implement secure authentication using JWT and bcrypt. Enable user registration, login, session persistence, and role-based access control with token refresh mechanisms.

Story: Android App Navigation & Base UI Components (ITS-8)

  • Assignee: Bhupinder Singh Atwal
  • Weight: 3/10

Build foundational Android app structure including navigation architecture, reusable UI components, MVVM pattern setup, and authentication screens integrated with backend.

Sprint 1 Task Distribution

User Story Person Responsible Weight
MongoDB Database Design & REST API Endpoints (ITS-32, ITS-20, ITS-33, ITS-19) Michael Oteng-Adjei 3
Authentication & Session Management (ITS-6, ITS-7, ITS-18) Salvador Alcantara 4
Android App Navigation & Base UI Components (ITS-8) Bhupinder Singh Atwal 3

Sprint 2: Core Features – Ticket Creation, Viewing & Management

Duration: Weeks 4-6

Story: Ticket Creation & List View UI (ITS-8, ITS-9, ITS-11)

  • Assignee: Bhupinder Singh Atwal
  • Weight: 3/10

Build ticket creation screen with form fields for title, description, priority, and category. Create ticket list interface displaying status, priority, assigned agent, and timestamps. Include validation, pull-to-refresh, and backend integration.

Story: Advanced API Filtering & Search Endpoints (ITS-13, ITS-14)

  • Assignee: Michael Oteng-Adjei
  • Weight: 4/10

Develop backend filtering and search capabilities using MongoDB text indexes. Support filtering by status, priority, date range, agent, and keyword search across ticket content.

Story: Role-Based Access Control & Ticket Permissions (ITS-10, ITS-12)

  • Assignee: Salvador Alcantara
  • Weight: 3/10

Implement role-based access control ensuring users see only their tickets while agents access all tickets. Create permission middleware and authorization logic for all endpoints.

Sprint 2 Task Distribution

User Story Person Responsible Weight
Ticket Creation & List View UI (ITS-8, ITS-9, ITS-11) Bhupinder Singh Atwal 3
Advanced API Filtering & Search Endpoints (ITS-13, ITS-14) Michael Oteng-Adjei 4
Role-Based Access Control & Ticket Permissions (ITS-10, ITS-12) Salvador Alcantara 3

Sprint 3: Collaboration, Notifications & Management

Duration: Weeks 6-9

Story: Ticket Comments System (ITS-15)

  • Assignee: Salvador Alcantara
  • Weight: 3/10

Implement Ktor API endpoints for posting comments, retrieving history, and managing internal agent notes. Build Android UI for viewing comment threads and posting messages with visual distinctions between user and agent comments.

Story: Ticket Status Updates & Assignment (ITS-16, ITS-17)

  • Assignee: Michael Oteng-Adjei
  • Weight: 3/10

Develop workflow features for status updates (new, in-progress, waiting, resolved, closed) and ticket assignment. Implement real-time updates, change logging, and business rule enforcement.

Story: Firebase Notifications & Manager Dashboard (ITS-24, ITS-29, ITS-30)

  • Assignee: Bhupinder Singh Atwal
  • Weight: 4/10

Integrate FCM for real-time notifications on ticket events. Implement manager dashboard with system statistics (tickets by status, resolution time, agent workload) and role management features.

Sprint 3 Task Distribution

User Story Person Responsible Weight
Ticket Comments System (ITS-15) Salvador Alcantara 3
Ticket Status Updates & Assignment (ITS-16, ITS-17) Michael Oteng-Adjei 3
Firebase Notifications & Manager Dashboard (ITS-24, ITS-29, ITS-30) Bhupinder Singh Atwal 4

Developer Status Updates

Format for Weekly Standups:

  1. What have I contributed since the last time we met? (Contribution)
  2. What will I have contributed before the next time we meet? (Next Steps)
  3. What am I stuck with that the team can help me with? (Challenges)

Current Status:

Bhupinder Singh Atwal:

  • Contributions: Android UI design and navigation structure
  • Next Steps: Finalize ticket screens and integrate with Ktor backend APIs
  • Challenges: Aligning API responses with UI expectations, learning curve with Kotlin coroutines and Android lifecycle management

Michael Oteng-Adjei:

  • Contributions: Ktor backend API development and MongoDB Atlas configuration
  • Next Steps: Implement authentication endpoints and request validation middleware
  • Challenges: Learning curve with Ktor framework features and MongoDB query optimization

Salvador Alcantara:

  • Contributions: JWT authentication system development and database schema design
  • Next Steps: Complete testing and prepare for deployment configuration
  • Challenges: AWS Lightsail deployment setup and SSL certificate configuration, learning curve with security best practices

Reference Image

My Image

Another Image

Tools

Project Management

Database

  • MongoDB Atlas: mongodb+srv://xxdb_user:xx@wond3r******

Version Control

Hosting

  • Backend Server: Ktor application hosted on AWS Lightsail with Node.js runtime