Skip to content

enatega/admin-portal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

374ae75 · Oct 11, 2024
Jul 26, 2024
Oct 11, 2024
Sep 16, 2024
Oct 11, 2024
Jul 30, 2024
Sep 21, 2024
Oct 2, 2024
Jul 26, 2024
Jul 25, 2024
Jul 25, 2024
Sep 23, 2024
Sep 30, 2024
Jul 26, 2024
Jul 29, 2024
Jul 26, 2024
Sep 26, 2024
Oct 2, 2024
Oct 2, 2024
Jul 25, 2024
Oct 2, 2024
Sep 15, 2024

Repository files navigation

Restaurant Delivery Management System

This project is a Restaurant Delivery Management System built with modern web technologies.

Technologies Used

  • Next.js 14
  • TypeScript
  • UI Libraries: Next UI, Chakra UI, or Prime React
  • React Icons (if required)
  • Tailwind CSS
  • Cypress for:
    • Component Testing
    • Integration Testing
    • E2E Testing

Build Size and Performance

  • Page Size: Must be between 150KB.
  • Critical JS and CSS: Must be below 100KB.
  • Bundle Analysis: Use webpack-bundle-analyzer as a dev dependency to analyze the bundle.
  • Dynamic Imports: Use dynamic imports in Next.js.
  • Image Optimization: Use the <Image/> tag of Next.js.

Performance Metrics

The app must follow the standard render times as follows:

  • First Contentful Paint (FCP): Under 1.8 seconds
  • Largest Contentful Paint (LCP): Under 2.5 seconds
  • First Input Delay (FID): Under 100 milliseconds
  • Time to Interactive (TTI): Under 5 seconds
  • Total Blocking Time (TBT): Under 300 milliseconds
  • Cumulative Layout Shift (CLS): Under 0.1
  • Speed Index (SI): Under 4.3 seconds
  • Time to First Byte (TTFB): Under 600 milliseconds
  • First Meaningful Paint (FMP): Under 2.5 seconds

Use the browser's Lighthouse tool for performance reports.

Folder Structure

app Folder

  • Contains only routes and layouts.

cypress Folder

  • Contains only test cases

lib Folder

  • hooks Folder: Custom hooks (e.g., useAuth, useConfiguration).
  • hoc Folder: Higher-order components (e.g., Route Protection HOC, Data Refresh HOC).
  • services Folder: Services for different flows, third-party API calls (e.g. Apollo, Geolocation API).
    • create separate sub-folders.
  • ui Folder: Reusable components, layouts, and screens.
  • utils Folder:
    • methods Folder: Utility methods (e.g. string manipulation).
    • interfaces Folder: TypeScript interfaces (prefixed with "I").
    • constants Folder: Common constants (strings, headers).
    • types Folder: Custom TypeScript types, if necessary.

Component Guidelines

  • Divide complex components into sub-components (e.g., header, body, footer).
  • Recommended code lines per component: 100-200 lines.

Changelog

  • Log code changes in the CHANGELOG.md file.
  • Only log merges/pushes to develop/staging/production branches.


├── .husky
│   └── git hooks
├── .vscode
│   └── IDE configuration
├── dist
│   └── built and minifed app.
├── .npmrc
│   └── npm configuration
├── .nvmrc
│   └── nvm configuration
├── cypress.config.ts
│   └── cypress configuration
├── app
│   └── routes
│   └── layouts
├── lib
│   ├── hooks
│   │   ├── useAuth.ts
│   │   ├── useConfiguration.ts
│   │   └── index.ts
│   ├── hoc
│   │   ├── withRouteProtection.ts
│   │   └── withDataRefresh.ts
│   │
│   ├── services
│   │   ├── support
│   │   │   ├── support.service.ts
│   │   │   └── index.ts
│   │   └── index.ts
│   ├── ui
│   │   ├── components
│   │   ├── layouts
│   │   └── screens
|   ├── utils
|   │   ├── methods
|   |   |   |   ├── string
|   │   │   |   |   ├── sort.ts
|   │   │   |   |   ├── toSentenceCase.ts
|   │   │   |   |   ├── index.ts
|   |   |   |   ├── regex
|   │   │   |   |   ├── email.ts
|   │   │   |   |   ├── password.ts
|   │   │   |   |   ├── url.ts
|   │   │   |   |   ├── index.ts
|   |   |   |   └── index. ts
|   │   ├── interfaces
|   │   │   ├── common
|   │   │   │   ├── IParent.ts
|   │   │   │   └── index.ts
|   │   │   ├── support.interface (sub-folders if required and index.ts for each)
|   │   │   └── index.ts
|   │   ├── constants
|   │   │   ├── strings
|   │   │   │   ├── global.strings.ts
|   │   │   │   └── support.strings (sub-folders if required and index.ts for each)
|   |   |   |   └── index.ts (export all above)
|   │   │   ├── headers
|   │   │   │   ├── global.headers.ts
|   │   │   │   └── support.headers (sub-folders if required and index.ts for each)
|   |   |   |   └──  index.ts (export all above)
|   │   │   └── index.ts
|   │   ├── types (same as interfaces)
|   │   │   └── index.ts
├── CHANGELOG.md
├── tsconfig.json
├── next.config.js
├── package.json
└── README.md

Git

  • Commit Predefined Types:
    • build
    • fix
    • refactor
    • revert
    • style
    • test
    • translation
    • security
    • changeset
    • config

Note

  • Under constant modifications.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published