Skip to content

Development Environments

Ellen Cushman edited this page Oct 28, 2024 · 2 revisions

By Olivia Li

Overview

DAILP uses multiple development environments to maintain the utility and usability of our digital archive. Each environment plays a critical role in supporting the continuous improvement of the platform while ensuring the stability of the main site. By offering a stable structure for development, testing, and community feedback, we ensure that developers and community members are able to make meaningful contributions to the documentation and sharing of the Cherokee language.

What environments does DAILP have?

  1. Local Environment The local environment isolates experimental changes by individual team members before they are pushed to the development environment, allowing experimentation and local testing. This allows our developers to run and test code remotely without the risk of altering other environments.

  2. Development Environment The development environment provides a collaborative workspace for centralized testing where developers can test and debug new updates and features. This ensures that updated code can be integrated smoothly and that changes are compatible with the current site before they are finalized.

  3. UAT (User Acceptance Testing) Environment The UAT environment closely mirrors the development environment and is designed to allow community members to provide feedback and verify the functionality of new features. Additionally, community members can contribute directly to the archive’s content by uploading new documents and editing translations via DAILP’s Translation Interface (TI). This environment plays a crucial role in developing a digital archive that reflects the cultural, educational, and linguistic needs of Cherokee language learners, speakers, and scholars.

  4. Production Environment The production environment refers to the user-facing digital archive where language learners, students, researchers, and community members can interact with our collections, translations, and language-learning resources. All changes are thoroughly tested and reviewed before they reach the production environment.

Why do we need these environments?

DAILP employs multiple environments to minimize risk and ensure a smooth development process. The use of distinct environments for development, testing, and production allows us to identify bugs, fix errors, and refine features without affecting the live platform.

How do we convert between environments?

Software (via releases) Converting code between environments is managed through a controlled release process. Once a feature is thoroughly tested in the development environment, new code is deployed to the UAT and production environments via tools including Terraform and Nix.

Data is transferred between environments via spreadsheet/S3/DB migration Data, such as documents, audio, and translations, are migrated via spreadsheets, databases, or cloud storage services like AWS S3. Scripts convert spreadsheets into database entries. Database migration tools are used to update schemas and transfer content. Scripts are used to manage changes in database structures so that any modifications to the databases are replicated across all environments, ensuring consistency and scalability.

More information can be found in DAILP Data Migration

Community Engagement through UAT

Community engagement is crucial in ensuring that our digital archive reflects the voices and the cultural, educational, and linguistic needs of Indigenous language speakers. Our UAT environment provides a testing ground for Cherokee community members to review translations and assess new features that align with our goal of language persistence. These environments ensure that community members play an active role in the site’s ergonomics, ongoing development, and improvement of our digital archive. Our goal: make DAILP useful as a collaborative online space for indigenous language learners, speakers, and scholars.