Skip to content

openpettech/petsee

Repository files navigation

Petsee

⚠️ Important Notice: Petsee is currently in alpha. Features may change, and stability is not guaranteed. We welcome community feedback to shape the future of this project!

Petsee is an open-source REST API framework designed for pettech projects, offering a comprehensive suite of features for managing various aspects of pet-related businesses and services.

πŸš€ Features

Core Entities

  • Customer Management: Handle customer data and additional contact persons
  • Animal Management: Manage animals with support for multiple ownership relationships
  • Organization Structure:
    • Facility β†’ Merchant β†’ Group hierarchy
    • Person entity for staff and other individuals
  • Inventory Management:
    • Entities: Brand, Supplier, Product, Warehouse, Stock, Stock Ledgers
  • Notes System: Create and manage notes for customers and animals
  • Task System: Create and manage tasks for people
  • Service Management:
    • Basic service creation
    • Value override capabilities (Group, Merchant, Facility, Customer, Animal, Breed, Species, Person)
  • Tagging System: Apply and manage tags for Animals and Customers
  • Resource Management: Manage different kind of resources like rooms, hardware
  • Shift Management: Manage shifts and shift types
  • Document Management:
    • Document template creation
    • Document creation based on templates
  • Location System: Track locations eg. factility address, pet tracking
  • Custom Fields: Extend entity information with custom fields (see details below)

Data Management

  • Translatable Dictionaries: Support for species, breeds, blood groups, allergens, diagnoses, reference categories, and values
  • File Storage: Integrated file management system

Developer Tools

  • Project Management: Create and manage multiple projects
  • API Key Generation: Secure API access management
  • Webhook Support: Create and manage webhooks
  • Webhook Logging: Comprehensive logging for webhook activities

Data Integrity

  • Data Lake: Track changes and modifications across all entities

Communication

  • Notification Center: Manage communication channels
  • SMS: Send and track sms messages

🧩 Modular Architecture

Petsee is built with modularity in mind, allowing easy adaptation and extension of core functionalities.

Object Storage

  • Current support: Minio
  • Default: Minio
  • Coming soon: S3 support
  • Extensible: Create custom adapters for other storage solutions

Search Engine

  • Current support: Meilisearch
  • Default: Meilisearch
  • Optional: Can be disabled if not needed
  • Extensible: Implement adapters for other search engines

Authentication

  • Default: Auth0
  • Future plans: Support for additional authentication providers

SMS

  • Current support: Twilio
  • Default: Twilio
  • Extensible: Implement adapters for other search engines

πŸ”§ Custom Fields

Petsee supports the addition of custom fields to extend information for various entities, providing flexibility and customization options for different use cases.

Supported Entities for Custom Fields:

  • Customer
  • Animal
  • Facility
  • Merchant
  • Group
  • Person
  • Notification Center
  • Document Template
  • Document Template Field
  • Document Template Field Option
  • Document
  • Location

Custom Field Capabilities:

  • Add extra attributes to entities beyond the standard fields
  • Support for various data types (e.g., text, number, date, boolean)
  • Searchable and filterable

Use Cases:

  • Add breed-specific health indicators for animals
  • Include loyalty program information for customers
  • Track facility-specific certifications or specializations
  • Store custom merchant categories or business types
  • Add group-wide policy or procedure references
  • Include person-specific skills or qualifications
  • Custom notification types to manage
  • Flag document template fields that are printable
  • Image for document template field option
  • Title of a created document
  • Name of a location

Custom fields provide the flexibility to tailor the Petsee platform to specific business needs without modifying the core data structure.

🚧 Alpha Status and Community Input

Petsee is currently in its alpha stage of development. This means:

  • The API and features are subject to change
  • Stability is not guaranteed, and breaking changes may occur
  • Documentation may be incomplete or change frequently

We're actively seeking input from the pettech community to ensure Petsee meets real-world needs and enables faster development of innovative solutions. Your feedback is crucial in shaping the future of this project.

How You Can Help:

  • Try out Petsee and report any bugs or issues
  • Suggest features or improvements that would benefit your pettech projects
  • Share your use cases to help us understand diverse industry needs
  • Contribute to discussions on architecture and API design
  • Participate in our community forums or GitHub discussions

Your insights will help us refine Petsee, making it a robust foundation for a wide range of pettech applications. Together, we can build a tool that accelerates innovation in the pet care industry.

πŸ› οΈ Getting Started

Required

  • Docker
  • Node 20

Running the app

  1. Install dependencies
yarn
  1. Set up environment variables
cp .env.example .env
  1. Setup docker containers
yarn docker:dev
  1. Run db migrations
yarn prisma:migrate
  1. Run db migrseedations
yarn prisma:seed
  1. Run dev
yarn start:debug

Test

# unit tests
$ yarn test

# e2e tests
$ yarn test:e2e

# test coverage
$ yarn test:cov

# test supertest
$ yarn test:supertest

🀝 Contributing

We welcome contributions! Please see our Contributing Guidelines for more details.

πŸ“„ License

Disclaimer: Everything you see here is open and free to use as long as you comply with the license. I promise to do my best to fix bugs and improve the code.

Crafted with ❀️ by Pet Lovers