Societyzen

Introduction

Society Zen is a comprehensive society management software designed to address the challenges faced by modern residential communities. It provides a centralized platform for managing various aspects of community life, including amenities, service providers, security, vehicles, and daily activities

Technology Stack

Agri Tech utilizes a robust technology stack to build a reliable and efficient platform. Here are the keycomponents:

Frontend

React : A popular JavaScript library for building user interfaces.

Typescript : A statically typed superset of JavaScript.

Chakra UI : A component library for creating accessible and customizable UI components.

Axios : A promise-based HTTP client for making API requests.

Tanstack React Query : Used for efficient data fetching and state management.

Tanstack React Router : For handling client-side routing.

Dexie : A client-side database library for storing data locally

Dexie-react-hooks : React hooks for interacting with Dexie.

Felte : A form library for handling form state and validation.

Jotai : A state management library based on atoms and selectors.

Zod : A TypeScript-first schema definition library

Backend

Rust: A systems programming language known for its safety and performance.

Actix Web Framework: A lightweight and fast web framework for Rust.

PostgreSQL: A robust and reliable open-source relational database management system.

JSON-RPC API: Used for communication between the front-end and back-end.

Event Sourcing and CQRS: Architectural patterns for handling complex domain logic.

Architectural Overview & Codebase HightLight

ComponentsSociety Zen follows a component-based architecture, organizing the application into reusable components. This promotes maintainability and code reusability.

Features: The application includes role-based features for admin, superadmin, member, and security roles. Specific features like amenity booking and entry log for security personnel are seamlessly integrated.

Routes: Separate routes are defined for different features, ensuring clear navigation within the application using Tanstack routes.

Types (DTO): Necessary types (Data Transfer Objects) are defined in a dedicated folder, promoting type safety and consistency across the application.

Database: Client-Side(Dexie): Dexie is used for local data storage, resulting in faster responses and improved user experience.

Server-Side(PostgreSQL): PostgreSQL is highly robust and reliable, making it suitable for critical applications.

Services: Services handle API calls using Axios, facilitating communication with the back-end.

Query-Mutation Services: Tanstack React Query is employed for mutation purposes, allowing seamless addition, updating, and deletion of data on the server.

Challenges and Solutions

  1. Multiple Role Login: Implementing secure login for different roles (superadmin, admin, member, security).

  2. Amenity Feature Handling: Managing amenity-related functionality throughout the application, including booking and entry logs.

  3. Role-Based Data Separation: Ensuring that each role sees only relevant data (e.g., security personnel accessing limited information).

Achievements

Client-side Achievements

  1. Offline Application Using Dexie: Society Zen provides offline functionality by leveraging Dexie for local data storage.

  2. Efficient State Management with Jotai: Jotai simplifies state management across the application.

Server-side Achievements

  1. Rust for Safety and Performance

Memory Safety: Rust’s ownership model and strict borrow checker helped prevent common memory-related bugs. Performance: Rust’s zero-cost abstractions and low-level control ensured optimal execution. Concurrency: Rust’s lightweight threads (using async/await ) allowed efficient handling of concurrent requests.

  1. Actix Web Framework:

Actix Web, a fast and lightweight framework, enabled us to build robust APIs: Asynchronous Handling: Leveraging async handlers improved scalability. Middleware: Actix middleware facilitated tasks like authentication, logging, and CORS handling.

  1. PostgreSQL:

Robust and Reliable: PostgreSQL ensures data integrity and recovery even in challenging scenarios. Open-Source and Community Support: A large community of contributors ensures continuous improvement. ACID Compliance: Adhering to ACID properties guarantees transactional reliability.

Key Learnings

  1. Role-Based Access Control (RBAC): Implementing RBAC was crucial for managing different user roles (superadmin, admin, member, security). It taught us the importance of fine-grained permissions and how to handle data visibility based on roles.

  2. Offline Functionality with Dexie: Leveraging Dexie for local data storage allowed us to create an offline-capable application. We learned about handling synchronization between local and server data effectively.

  3. Architectural Patterns (Event Sourcing and CQRS): Society Zen’s use of Event Sourcing and CQRS taught ushow to manage complex domain logic while maintaining scalability and consistency.

  4. State Management with Jotai: Jotai’s simplicity and flexibility helped us manage application state efficiently. We learned that sometimes less can be more when it comes to state management libraries.

  5. User-Centric Design: Focusing on user needs and usability was a recurring theme. We learned that a well- designed user experience is essential for adoption and satisfaction.

Conclusion

Society Zen demonstrates how thoughtful technology choices, architectural decisions, and innovative solutions can enhance community living. By addressing real-world challenges, it empowers residents and community administrators alike.

Fuzzy cloud is a cloud-based software development and consulting firm specializing in the use of modern technology to solve Fuzzy problems.

Quick Links

Terms and Conditions

Privacy Policy

Let’s Work Together

© Copyright 2023 - Fuzzy Cloud, All rights reserved