Skip to content

The official repository for software development standards and guidelines at Symph, ensuring consistency, quality, and efficiency in all projects. (Work in progress)

Notifications You must be signed in to change notification settings

symphco/engineering-standards

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Symph Engineering Standards

About

This document is the core repository for standards and guidelines specific to software development at Symph. It sets forth the criteria and practices that govern our software development processes, ensuring consistency, quality, and efficiency across all projects. These standards apply to every member of our development teams, including full-time staff, contractors, and partners.

Compliance with these standards is mandatory for all software development activities within Symph. Exceptions to these standards can only be made through a formal review and approval process aligned with Symph's architectural governance framework.

Principles

The development practices at Symph are grounded in a set of core principles, as outlined below:

  • Symph Principles Overview: A foundation that guides our approach to software development, emphasizing innovation, quality, and collaboration.
  • Coding Principles: Best practices and methodologies for writing clean, efficient, and maintainable code.
  • Security Principles: Guidelines to ensure the development of secure applications and protection of data against threats.

Standards

The following standards are essential for maintaining the high quality of software development at Symph:

  • Coding Standards: Practices and conventions for writing code, including:
    • TypeScript Standards: Best practices and conventions for TypeScript development to ensure type safety and code scalability.
    • Next.js Standards: Guidelines for building server-rendered or statically generated web applications using Next.js.
    • NestJS Standards: Standards for developing efficient, reliable, and scalable server-side applications with NestJS.
    • React Native Standards: Best practices for developing cross-platform mobile applications using React Native.
    • APIs/Backend/DB Naming Standards: Guidelines for naming conventions in APIs, backend services, and databases to ensure consistency and clarity across the codebase.
  • Security Standards: Protocols and practices to safeguard our software from vulnerabilities and attacks.
  • API Security Standards: Protocols and practices to safeguard our API from vulnerabilities and attacks.
  • Version Control Standards: Guidelines for using version control systems effectively to track and manage changes to the codebase.
  • Cloud Architecture Defaults: Outlines the recommended configurations and practices for cloud-based services to ensure optimal security, scalability, and efficiency in line with industry best practices.
  • README Standards: Best practices for creating informative and concise README files to accompany and document software projects.
  • REST API Standards: Outlines our standardized REST API guidelines for building efficient and reliable services to ensure seamless integration and maintainability across our ecosystem.

Symph Tech Stack

The Symph tech stack encompasses a wide range of technologies and tools that power our software solutions. Below is a visual representation of the tech stack:

Symph Tech Stack

Breakdown:

  • Storage: Cloud SQL, Supabase, MySQL, PostgreSQL, Firebase, Azure DB, Firestore.
  • API: NestJS, Express, TypeORM, Nx, Swagger, API Lib Builder.
  • Frontend: Next.js, Svelte, Flutter, React Native.
  • DevOps: App Engine, Cloud Run, GitHub, Cloud Build.
  • Error and Log Monitoring: Sentry, Google Cloud Logging.
  • Code Quality Checks: Sonar Check, Peer Code Review.

This tech stack allows Symph to deliver high-quality, scalable, and maintainable software solutions across various domains and platforms. We maximize proven frameworks for both the backend and frontend and uses Swagger to generate an OpenAPI spec for communication between both. This means that when something changes in the APIs present in the backend, it automatically gets generated to a working API client that the frontend can use including types and parameters and thus makes it easier to interact APIs present in the backend.

Nx as a smart monorepo tool ties everything together for reusability and ease of setup for the project. Through NX smart libraries, we can share code across multiple applications of the same project domain. All shareable components, functions, types and classes are in the libs folder at the project's root, readily available for importing.

License

Symph has adopted an open source license for these engineering standards. This decision underscores our commitment to transparency, collaboration, and the free exchange of ideas within the global software development community.

By utilizing an open source license, we encourage the adaptation, sharing, and improvement of our standards by developers and organizations worldwide. This collaborative approach not only enriches our own standards but also contributes to the broader software development ecosystem.

About Open Source

Open source licenses are designed to allow for the free distribution and modification of software's source code. This approach fosters a community-driven development process where innovations are shared freely, enabling others to contribute improvements and variations back to the community.

About

The official repository for software development standards and guidelines at Symph, ensuring consistency, quality, and efficiency in all projects. (Work in progress)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published