Architecture - wingtek2020/WingTekNotions GitHub Wiki

๐Ÿงต WingTek Notions Architecture Summary

๐Ÿ“Œ Overview

WingTek Notions is a full-stack application designed to manage knitting inventory, patterns, and community messaging. The architecture leverages a modern front-end with Angular, a secure and scalable .NET Core API backend, and a relational SQL Server database for persistent storage.


๐Ÿงฑ Architecture Stack

๐Ÿ–ฅ๏ธ Frontend (Admin Portal)

  • Framework: Angular 18+
  • Language: TypeScript
  • **Tim's Creative react templates
  • Build Tool: Angular CLI / esbuild
  • Authentication: JWT
  • Deployment: Static site (MyWindowsHosting)

๐Ÿ”— Backend API

  • Framework: ASP.NET Core 8 Web API
  • Language: C#
  • Architecture: Clean Architecture / Onion Architecture
  • Authentication & Authorization: JWT Bearer Tokens, Ravelry, Google, etc..
  • Dev Pattern: Repository + Service Layer + DTOs
  • Documentation: Swagger / Swashbuckle
  • DevOps: TBD

๐Ÿ—ƒ๏ธ Database

  • Engine: SQL Server
  • ORM: Entity Framework Core 8
  • Migrations: EF Core Migrations + Optional SSDT/Schema Drift Checks
  • Seeding: Dev/Test data via EF or Manual Scripts
  • Schema Tracking: Snapshot folders with versioned SQL (optional)

๐Ÿ“ฑ Mobile App (React Native iOS)

  • Framework: React Native + Expo
  • Language: TypeScript
  • Navigation: React Navigation
  • Authentication: Token-based (stored via AsyncStorage)
  • Backend Integration: API calls via .Net Core
  • Features: Offline support (optional), push notifications, chat UI

๐Ÿงถ Domain Areas

Domain Description
Needles Track types, sizes, and materials of knitting needles
Yarn Stash Inventory of yarns, colors, weights, and quantities
Patterns User-defined or imported patterns, with categories and attributes
Messaging Basic chat system for community or admin messaging
Authentication User login, roles (Admin/User), secure endpoints

๐Ÿ›  Dev Workflow

  • Git Repos: Monorepo or split repos for API, Angular, Mobile
  • Branch Strategy: main, dev, mobile, feature/*
  • Local Dev Setup:
    • SQL Server local instance
    • .env or appsettings.json for environment configs
    • Angular: ng serve, API: dotnet run, Mobile: expo start
  • Testing:
    • Angular: Jest
    • API: xUnit or NUnit
    • Mobile: Expo unit tests, manual device QA

๐Ÿ”’ Security & Roles

  • Authentication: custom JWT
  • Roles: Admin, Regular User
  • Security Considerations:
    • CORS config
    • HTTPS enforcement
    • Secure token storage (mobile)
    • Input validation and anti-forgery

๐Ÿš€ Deployment Plan

Component Environment Target
Angular Dev/Test/Prod Azure Static Web / Vercel
API Dev/Test/Prod Azure App Service / Docker
Database Local / Azure SQL SQL Server
Mobile TestFlight / Expo iOS App Store

๐Ÿ“ˆ Scaling Considerations - TBD

  • Modular API structure allows vertical domain growth
  • Use EF Core split DbContexts for isolated domains (if needed)
  • Use Azure Service Bus / SignalR for future real-time messaging
  • Add logging/monitoring (Serilog, App Insights) for observability

๐Ÿ“Œ Summary

This architecture supports a clean, maintainable, and scalable platform for hobbyist inventory management with future room for community interaction, mobile-first usage, and third-party integrations (e.g., Ravelry API).