@hirebus/academy v0.12.6
Project Structure & Code Organization
Package Manager
- Use
pnpmfor all package installations and management
Core Libraries and Versions
- React: ^18.x.x
- React DOM: ^18.x.x
- TypeScript: ^5.x.x
- Tailwind CSS: ^3.x.x
- shadcn/ui: Latest components
- Zod: ^3.x.x
- TanStack Router: ^1.x.x
- Tanstack Query: ^5.x.x
- Zustand: ^4.x.x
Naming Conventions
kebab-case- for all folders/files_kebab-case- for feature domain's specific common modules-kebab-case- for route domain's specific common modulesPascalCase- for classes and typessnake_case- for database tables and columnscamelCase- for functions, zod schemas and etc.
Common Modules
assets- for assetscomponents- for componentsconstants- for constantscontexts- for react context apidata- for data access layer (e.g.api,database)hooks- for custom hooks, tanstack query and mutationlib- for 3rd party integrations librariesservices- for business logic and orchestration of data access layer (Only if necessary)stores- for stores (e.g.zustand)types- for typesutils- for utilities
Domain Folders
src- main source code and shared common modulessrc/routes- main router foldersrc/features- main features folder (Only if necessary)
Shared Modules Structure
Shared modules follow this structure:
src/
├── assets/ # Shared assets module
├── components/ # Shared dumb components module
│ └── ui/ # UI components (button, input, etc.)
├── constants/ # Shared constants module
├── contexts/ # Shared react context api module
├── data/ # Shared data access layer module (API, database)
├── hooks/ # Shared custom hooks, tanstack query and mutation
│ ├── use-[custom].ts # Shared custom hook
│ └── query/ # TanStack Query hooks
│ └── [entity]/ # TanStack Query entity folder
│ ├── use-[entity]-query.ts # Shared react-query query (Only if necessary)
│ └── use-[entity]-mutation.ts # Shared react-query mutation (Only if necessary)
├── lib/ # Shared 3rd party integrations
├── services/ # Shared business logic (only if necessary)
├── stores/ # Shared state stores (e.g., zustand)
├── types/ # Shared types
└── utils/ # Shared utilitiesRoutes Domain Structure - Default
When creating new page/route files, follow this structure:
src/routes/<route-name>/
├── index.tsx # Route's entry point
├── -components/ # Route's components
├── -constants/ # Route's constants
├── -contexts/ # Route's react context API
├── -hooks/ # Route's hooks
├── -types/ # Route's types
└── -utils/ # Route's utilitiesFeature Domain Structure - Optional
When creating new feature files, follow this structure:
src/features/<feature-name>/
├── index.ts # Feature's entry point
├── _assets/ # Feature's assets (only if necessary)
├── _components/ # Feature's components
├── _constants/ # Feature's constants
├── _contexts/ # Feature's react context API
├── _data/ # Feature's data access layer (only if necessary)
├── _hooks/ # Feature's hooks, tanstack query and mutation (only if necessary)
├── _lib/ # Feature's 3rd party integrations (only if necessary)
├── _services/ # Feature's business logic (only if necessary)
├── _stores/ # Feature's state stores (e.g., zustand)
├── _types/ # Feature's types
└── _utils/ # Feature's utilities9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago