Skip to content

Latest commit

 

History

History
82 lines (66 loc) · 5.26 KB

README.md

File metadata and controls

82 lines (66 loc) · 5.26 KB

Internal Ticketing

GitHub issues GitHub closed issues GitHub repo size GitHub last commit

A technical support ticket Android app designed to keep track of open issues, assist productivity and improve communication at the local library.

Purpose

The main purpose of this project is to practice multiple skills while improving the workplace.

  • Increase productivity and communication internally
  • Improve overall app development skills
  • Build upon Java knowledge
  • Explore database design and management
  • Practice Git commands

Requirements

  1. openssl
  2. keytool
  3. PostgreSQL
  4. Node.js
  5. Express.js

Libraries and APIs

  • Microsoft Graph API
  • Microsoft Authentication Library
  • Firebase

Getting SHA-1 Certificate Fingerprint

  • In Android Studio go into the gradle tab
  • Then head to [ProjectName] > Tasks > android and run the signingReport

Alternatively

  • Generate a signed bundle/APK
  • Create new Keystore and key (Alternatively, use a previously set up keystore or debug.keystore)
    • Fill out key details (alias, passowrd, validity, etc) and press okay.
    • Continue to signing the app if needed. Otherwise hit cancel as the keystore has already been generated
  • Run this command keytool -keystore path-to-debug-or-production-keystore -list -v
    • Note: We should be in the same directory as keytool.exe or provide its path instead of the "keytool" command. e.g. path-to-keytool.exe -keystore path-to-debug-or-production-keystore -list -v
  • Copy the SHA-1 certificate fingerprint

Connect to Microsoft Graph API

I followed this tutorial for authenticating with Microsoft Azure AD

  • Head to the Azure Active Directory admin center
  • Click Azure Active Directory > App Registrations > New Registration
  • For a mobile app the redirect URI should be msauth://[yourpackagename]/[yoursignaturehash]
  • We'll need the auth config json file, the browser tab activity in our Android Manifest file, and the microsoft authentication library dependency
  • All of the code needed to connect and make a Graph API call is in the tutorial

Setting up a cloud server

If you're following along to set up this project from start to finish you may select any server and RDBMS to work with your app. For simplicity and to get the project going quickly, I've decided to go with Digital Ocean's cloud services for now. They have some great and easy-to-follow tutorials

  • I chose to connect to the server using SSH. I used this tutorial to create the key with PuTTY. You may also connect using OpenSSH
  • This tutorial shows how to quickly set up your server, create a user and set up a firewall
  • Finally, this tutorial shows you how to install PostgreSQL and use some of the basic commands in the terminal

Set up the database

Note: If you followed the tutorial on seting up a server with DigitalOcean and have a firewall up, you'll have to open a port to receive HTTP requests

RESTful Web Service curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt install nodejs
npm install pg-promise
npm install dotenv

Connect to Firebase