User Manual

Detailed guide with step-by-step instructions and visual references for all features.

Navigation Guide

Learn how to find accessible routes and services.

Customization

Personalize themes, fonts and display settings.

Troubleshooting

Solutions for common technical issues.

Deployment Manual

This section provides a step-by-step guide on how to deploy the project after obtaining the source code.

The section below will detail how to deploy the project after obtaining the source code. All of the source code is currently closed source, however all our clients have been invited to access the github repositories.

Prerequisites

Please make sure you have Docker installed on your machine.

Step 1: Clone the Repository

Clone the github repository to your local machine:

git clone https://github.com/levon-d/comp0016-data-layers-for-accessibility.git

Backend Deployment

  1. After cloning the github repository, navigate to the backend directory by running: cd comp0016-data-layers-for-accessibility/backend
  2. Prepare the environment by creating .env.local and .env.prod files. The environment files have the following properties:
    Field Type Description Local Value
    DATABASE_URL str The url link to the database "postgresql://postgres:postgres@postgres:5432/postgres"
    DEBUG boolean Indicates whether or not to include debug logs true
  3. For the production, make sure to provide a URL of your deployed postgresql database. Our open source database url credentials are private so will not be shared with the clients. However, for as long as our azure deployments are active, the database can be accessed by using our API (documentation found here: https://datalayersforaccessibilityapi.azurewebsites.net/docs) or our database viewer website: https://accessible-data-layers-g0e8g6dnacgtbbh6.uksouth-01.azurewebsites.net/.

  4. The current state of the database has also been exported into a single file that can be found in comp0016-data-layers-for-accessibility/backend/dbexport.pgsql

    It can be accessed by running the following script:

    psql -U postgres -D postgres -a -f dbexport
  5. After setting all the environment variable, make sure Docker is running and execute the following in your terminal to run the app locally:

    make backend-local
  6. In order to run the API locally but have the database deployed in production, run:

    make backend-prod
  7. To deploy the API as well please follow the steps in the azure documentation. Note that from this web page the only thing the developer has to do is install the azure command line tool and create a resource group, container and app service. After this, simply change the following variables in the makefile to your app properties:

    # Constants for the azure deployment 
    RESOURCE_GROUP := backend
    WEBAPP_NAME := datalayersforaccessibilityapi
    IMAGE_NAME := api
    IMAGE_TAG := latest

    Now you can deploy the API by running make deploy-api

Widget Deployment

After pulling the app from github, the widget source code should be available under mock-website/app/components/AccessibleLocationWidget.tsx. Sadly, we did not have enough time in order to bundle this component into an npm package. In order to integrate into your website you have to copy the source code files of the component (as well as all other components that it imports) and add it to your next.js project. To run the next.js project, from the root directory run npm run build and npm run start

Database Website Deployment

After pulling the app from github, the database website source code should be available under /frontend. After our Azure deployment expires, you may wish to redeploy the database website from the source code. To do so, please firstly add a .env.local file with the following property: REACT_APP_API_KEY. This should be a string which is your API key for the deployed backend API. After that, please choose a cloud provider and follow their documentation to deploy a simple react app. For example, here is the relevant azure documentation.

Development Blog

Explore the journey behind the code. Here, we reveal our insights, challenges, and breakthroughs.

Monthly Videos

Dive into our monthly videos to explore the progress, challenges, and milestones achieved during the development of our widget.

Note on AI Usage

To help generate the skeleton code for the website, the technology v0 by Vercel was used. To help debug, generate boilerplate code and implement certain features, the following gen-AI tools were used: Anthropic's Claude models, OpenAI's gpt models.