The configuration directory contains several key files that define the application's behavior:
Manages the project's contributors information in a structured format:
coordinators
: Project coordinators with their institutional affiliationscollaborators
: Research collaborators with detailed biosresearchAssistants
: Research support staffdevelopers
: Technical team members
Defines the search/browse filters configuration:
- Configures available filter types (documents, enslaved persons, non-enslaved persons, etc.)
- Includes icons and display names for each filter type
- Provides utility functions for filter management
Contains localization and branding configuration:
- Defines the main title stem and its variations
- Manages title animations and display logic
Central API communication module:
- Handles all backend API requests
- Implements fetch wrapper with base URL configuration
- Manages endpoint-specific functions for:
- Search operations
- Browse operations
- Detail view data retrieval
Svelte stores for managing application state:
- Document browsing state
- Search results and pagination
- Filter states and counts
Configures and manages interactive data tables:
- Defines column configurations for different data types
- Handles server-side pagination and sorting
- Implements custom renderers for special data types
Bootstrap integration utilities:
- Dropdown menu initialization
- Collapse functionality
- Tooltip management
- Server-side rendering compatibility
Title animation and management:
- Handles title suffix rotation
- Manages color transitions
- Controls animation timing
Text animation implementation using Anime.js:
- Character-by-character animation
- Timing and easing controls
- Animation sequence management
Generates hierarchical document structure:
- Processes archive metadata
- Creates nested tree structure
- Handles special document types
Logging system implementation:
- Configures log levels
- Manages server-side logging
- Handles error reporting
General utility functions:
- Date formatting
- Common helper functions
- Environment Setup
npm install
- Development Server
npm run dev
- Key Areas for Contribution
- UI Components:
src/routes/
directory - Data Management:
src/lib/
stores and API integration - Configuration:
src/conf/
for system-wide settings
- Code Style
- Use ES6+ features
- Implement proper error handling
- Document complex functions
- Use TypeScript types where possible
- Component Development
- Keep components focused and single-responsibility
- Use Svelte stores for state management
- Implement proper loading and error states
- API Integration
- Use the centralized API module
- Implement proper error handling
- Cache responses where appropriate
[Work in progress]
[Work in progress]
- Fork the repository
- Create a feature branch
- Implement your changes
- Submit a pull request
[Work in progress]