- Latest lint report artifact (lint-report)
- Latest component test artifact (component-test-report)
- Latest coverage artifact (coverage-report)
Artifacts are generated automatically on every push and pull request run.
A modern, offline-first mobile shopping list application built with Angular and Capacitor. Nimmit enables users to create, manage, and share shopping lists with automatic synchronization and conflict resolution.
- Offline-First: Use your shopping lists without internet connection
- Real-Time Synchronization: Automatic background sync when online
- Conflict Resolution: Smart conflict detection and resolution with push notifications
- Multi-List Management: Create and manage multiple shopping lists
- Shared Lists: Share lists with family and friends via unique codes
- Quick Add: Add items with a single tap
- Search: Fast search functionality to find items quickly
- Smart Sorting: Automatic categorization by store sections
- Shopping Sessions: Track purchases during shopping trips
- Cross-Platform: Available for iOS and Android
This project uses Angular 21 with Capacitor 8 for cross-platform mobile development. For a complete overview of the technology stack, see DOCS/Techstack.md. For a detailed architecture and implementation guide with code snippets, see Technical Documentation.
Key Technologies:
- Angular 21 + TypeScript
- Capacitor (iOS & Android)
- Supabase (Backend & Authentication)
- Tailwind CSS
- RxJS
- Bluetooth LE for local synchronization
- Node.js 18+ and npm 11.8+
- Angular CLI
- For iOS development: Xcode
- For Android development: Android Studio
For instructions on running tests, generating coverage, and running ESLint, see DOCS/Testing.md.
-
Clone the repository:
git clone https://github.com/TGM-HIT/syt5-gek1051-mobile-application-nimmit.git cd syt5-gek1051-mobile-application-nimmit -
Install dependencies:
npm install
-
Configure Supabase:
- Set up your Supabase project
- Update configuration files with your Supabase credentials
npm startThe application will be available at http://localhost:4200
npm run cap:sync
npm run cap:open:iosnpm run cap:sync
npm run cap:open:androidnpm start- Start development servernpm run build- Build for productionnpm test- Run unit testsnpm run test:component- Run component tests in CI modenpm run test:coverage- Run tests with coverage outputnpm run lint- Run ESLint checksnpm run lint:fix- Run ESLint and apply automatic fixesnpm run cap:sync- Sync web assets with native platformsnpm run cap:run:ios- Build and run on iOS device/simulatornpm run cap:run:android- Build and run on Android device/emulator
src/
├── app/
│ ├── components/ # Reusable UI components
│ ├── models/ # Data models and interfaces
│ ├── navigation/ # Navigation component
│ ├── pages/ # Application pages
│ │ ├── groups/ # Group management
│ │ ├── settings/ # User settings
│ │ └── shopping-list/ # Shopping list views
│ └── services/ # Business logic and API services
├── styles.scss # Global styles
└── main.ts # Application entry point
- User Stories
- Testing & Linting
- Tech Stack Details
- Technical Documentation
- Supabase CLI Guide
- Synchronization Strategy
- Contributing Guidelines
Please read CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.
Class 5BHIT
- Product Owner: Felix Schmid
- Technical Architect: Franz Puerto
- Developer: Karol Gradkowski
- Developer: Georg Sinakijevic
This project is licensed under the terms specified in LICENSE.
Mobile Application Development Project - TGM Wien