MniamAI to nowoczesna platforma do zarządzania zamówieniami żywności i cyklami dostaw, dedykowana dla lokalnych dostawców, klientów, operatorów i administratorów. System umożliwia efektywne zarządzanie produktami, składanie zamówień, obsługę cykli dostaw oraz pełną komunikację między wszystkimi uczestnikami platformy.
MniamAI/
├── apps/
│ ├── backend/ # Node.js + Express + Prisma
│ │ ├── src/
│ │ │ ├── index.ts # Entry point
│ │ │ ├── routes/ # API routes
│ │ │ ├── middleware/ # Auth middleware
│ │ │ └── utils/ # Utilities
│ │ ├── prisma/
│ │ │ ├── schema.prisma # Database schema
│ │ │ └── migrations/ # Database migrations
│ │ └── package.json
│ │
│ └── mobile/ # React Native + Expo
│ ├── app/ # Expo Router pages
│ ├── src/
│ │ ├── api/ # API calls
│ │ ├── components/ # Shared components
│ │ ├── screens/ # Screen components
│ │ └── guards/ # Route guards
│ ├── utils/ # Utilities
│ └── package.json
│
├── docs/ # Documentation
├── www/ # Web build output
└── start-dev.sh # Development script
Opis: Użytkownik końcowy, który przegląda produkty, składa zamówienia i śledzi ich status.
Uprawnienia:
Statusy: pending → approved → blocked
Opis: Lokalny dostawca produktów, który zarządza swoimi produktami i śledzi zamówienia.
Uprawnienia:
Statusy: pending → approved → blocked
Opis: Osoba zarządzająca platformą, zatwierdzająca użytkowników i produkty, zarządzająca cyklami.
Uprawnienia:
Opis: Najwyższy poziom dostępu z pełną kontrolą nad platformą.
Uprawnienia: Wszystkie uprawnienia operatora plus:
Użytkownicy mogą zgłaszać uwagi dotyczące funkcjonalności stron. System umożliwia:
Platforma oferuje pełny system wiadomości między użytkownikami:
System używa PostgreSQL z Prisma ORM. Główne tabele:
| Tabela | Opis |
|---|---|
User |
Użytkownicy systemu (klienci, dostawcy, operatorzy, administratorzy) |
Cycle |
Cykle dostaw z datami otwarcia, zamknięcia i dostawy |
Category |
Kategorie produktów |
Product |
Produkty z dostępnością, kategorią i dostawcą |
Order |
Zamówienia powiązane z użytkownikiem i cyklem |
OrderItem |
Pozycje zamówienia (produkt + ilość) |
Concern |
Uwagi zgłaszane przez użytkowników |
ConcernMessage |
Wiadomości w ramach uwag |
Conversation |
Konwersacje między użytkownikami |
Message |
Wiadomości w konwersacjach |
POST /auth/register
Body: { email, password, phone? }
Response: { token, user }
POST /auth/login
Body: { email, password }
Response: { token, user }
GET /auth/me
Headers: Authorization: Bearer {token}
Response: { user }
GET /products
Response: Products grouped by cycles
GET /products/:id
Response: Product details
POST /products (supplier only)
Body: { name, description, unit, cycleId, categoryId, availableQty }
Response: { product }
PUT /products/:id (supplier only)
Body: { name, description, availableQty, ... }
Response: { product }
POST /orders
Body: { items: [{ productId, qty }] }
Response: { order }
GET /orders
Response: User orders
GET /orders/:id
Response: Order details
GET /cycles
Response: List of cycles
POST /cycles (operator/admin only)
Body: { name, description, openDate, lockDate, deliveryDate, endDate }
Response: { cycle }
PUT /cycles/:id (operator/admin only)
Body: { ... }
Response: { cycle }
GET /users (operator/admin only)
Response: List of users grouped by roles
GET /users/:id (operator/admin only)
Response: User details
PUT /users/:id/status (operator/admin only)
Body: { status: 'approved' | 'blocked' }
Response: { user }
DELETE /users/:id (admin only)
Response: { success }
GET /concerns/config?pageKey={pageKey}
Response: { enabled, pageConfig }
GET /concerns/mine
Response: User concerns
POST /concerns
Body: { pageKey, pagePath, title, body }
Response: { concern }
GET /concerns/:id
Response: Concern details
POST /concerns/:id/messages
Body: { body }
Response: { message }
DATABASE_URL - URL do bazy PostgreSQLJWT_SECRET - sekretny klucz dla JWTPORT - port serwera (domyślnie 3000)cd apps/mobile
npx expo export --platform web --output-dir ../../www
www/index.html z URL backendudeploy_ftp_curl.sh/www/ - root folder (fizyczny folder na FTP)/index.html - strona główna/app/ - aplikacja/documentation.html - dokumentacjaeas build --platform ioseas build --platform android