Skip to content

Project Structure

This is a high-level overview of the project structure of the Vrooli codebase. For more information on a specific directory. Check out each directory yourself to get a better understanding of what's in there.

.
├── assets - Data displayed in docs
├── docs - Data for documentation site, hosted at vrooli.com/docs
└── packages - Core website code, in a monorepo setup
├── server - The "behind the scenes" code
│ └── src
│ ├── auth - Authentication-related code, such as cardano-serialization and GraphQL authentication
│ ├── db
│ │ ├── migrations - Database version control
│ │ ├── seeds - For populating database with real or "mock" data
│ │ └── schema.prisma - Defines the database structure
│ ├── endpoints - GraphQL schema
│ │ ├── index.ts - Merges schema files into one executable schema
│ │ └── root.ts - Contains core type definitions and resolvers
│ ├── events - Handles tracking awards, triggering notifications, and other event-based actions │ ├── middleware - Express middleware
│ ├── models - Compositional components representing objects in the database
│ ├── notify - Everything related to notifications. Emailing, push, etc.
│ └── utils - Miscellaneous utility functions
│ └── package.json - Dependencies and useful scripts
├── shared - Data shared between packages
└── ui - What the user sees
├── public - OpenGraph, Progressive Web App, Trusted Web Activity, and other metadata about the website
└── src
├── assets
│ ├── font - Custom fonts
│ └── img - Images displayed on site, that aren't user-uploaded or from Open Graph
├── components - Reusable React components
├── forms - User input forms
├── graphql
│ ├── generated - Code automatically generated from yarn graphql-generate script
│ ├── endpoints - GraphQL endpoints
│ ├── partial - Partial GraphQL selections
│ └── utils - GraphQL-specific utility functions
├── pages - Website pages
└── utils - Miscellaneous utility functions
└── package.json - Dependencies and useful scripts
└── .env-example - Environment variables