Skip to content
To Huynh edited this page Jan 12, 2023 · 5 revisions

Tech stack

  • Next.js Web application framework
  • NextAuth.js Authentication for Next.js
  • ReactJS User interface library
  • TypeScript Programming language
  • Carbon Design System Building block components to build the application
  • Storybook User interface explorer of the components of the application

Source overview

  • .github: GitHub action workflow files
  • .storybook: Storybook config files to preview and build a custom user interface explorer
  • constants: App constants
  • features
    • analytics
      • matomo integration
    • ati: Everything related to an ATI project
      • AtiExportAnnotations: Components for the export annotations page
      • AtiManuscript: Components for the manuscript page
      • AtiProject: Concise summary of an ATI project(for the landing page when user is logged in)
      • AtiProjects: List of AtiProjects(for the landing page when the user is logged in) with searching and filtering capabilities
      • AtiSettings: Components for the settings page
      • AtiSummary: Components for the summary page
      • AtiTab: Generic container component to contain the AtiExporAnnotations, AtiManuscript, AtiSettings, and AtiSummary components
      • NewAtiProjectForm: Form to create a new ATI project
    • auth: All components related login and logout
      • HypothesisLoginNotification: Component to notify user that they need to login in order to see their private annotations
      • LoginForm: Form to login to AnnoREP
    • components: General app components
      • AppBar
      • AppDesc
      • AppGuide
      • HomePageTitle: A title component for the landing page, includes to a button to create a new ATI project
      • Layout: General page container
    • error: Generic error component
  • hooks: Useful ReactJS hooks
  • pages
    • api: Internal app API
      • arcore: ARCore wrapper to upload manuscript to QDR Dataverse and extract annotations from manuscript
      • auth: NextAuth.js implementation for app authentication
      • datasets: QDR Dataverse API wrapper to interact with a dataverse dataset
      • delete-file: SWORD API wrapper to delete a QDR Dataverse file
      • hypothesis: Hypothes.is API wrapper
      • mydata-search: QDR Dataverse search API wrapper to search for data projects
    • ati: The /ati/:id/ pages
      • exportAnnotations: The export annotations page of an ATI project
      • manuscript: The manuscript page of an ATI project
      • settings: The settings page of an ATI project
      • summary: The summary page of an ATI project
    • auth
      • login: The /auth/login page of the app
    • guide: The /guide page of the app
    • new: The create a new ATI project page
    • _app.tsx: Next.js App Container
    • _error.tsx: Next.js Error Container
    • 404.tsx: The 404 error page
    • index.tsx: The landing page of the app
  • public
    • assets: Image files for the app guide page
  • stories: Storybook stories
  • styles: Reusable CSS styles
  • test: Test mock files
  • types: App types to help with static checking
  • utils: Utility functions

Clone this wiki locally