Onboarding
This document provides a comprehensive onboarding guide for frontend engineers working at Innox Technologies, including setup instructions, workflows, architecture overview and development standard.
Engineering Onboarding Guide
This guide will help you get up and running with any of innox project.
Table of Contents
Prerequisites
Quick Start
Development Workflow
Project Structure
Key Technologies
Testing
Common Tasks
Resources
Prerequisites
Before you begin, ensure you have:
Node.js: v18.17.0 or higher (v20+ recommended)
npm: v9.0.0 or higher
Git: Latest version
Code Editor: VS Code with recommended extensions
VS Code Extensions (Recommended)
ESLint
Prettier
TypeScript and JavaScript Language Features
Auto Import
Path Intellisense
Quick Start
1. Clone the Repository
2. Install Dependencies
3. Set Up Environment Variables
Create a .env.local file in the root directory:
4. Run Development Server
The application will be available at http://localhost:3000
5. Development Workflow
Branch Strategy
main- Production-ready codestaging- For QA and External testingdevelop- Integration branch for featuresfeature/*- Feature branchesbugfix/*- Bug fix branches
Commit Convention
We follow conventional commits:
Types:
feat- New featurefix- Bug fixdocs- Documentation changesstyle- Code style changes (formatting, etc.)refactor- Code refactoringtest- Adding or updating testschore- Maintenance tasks
Examples:
Code Review Process
Create a feature branch from
developImplement your changes
Run tests and linting
Create a pull request
Request review from team members
Address feedback
Merge after approval
Running Tests
Building for Production
Key Technologies
Next.js 15+ with App Router
Server Components: Default for all pages
Client Components: Use
"use client"directive for interactivityServer Actions: Use
"use server"for data mutationsFile-based Routing: Routes defined by file structure
Important Rules:
Keep components as Server Components by default
Only use Client Components when necessary (forms, interactive UI)
Use Server Actions for all data mutations (no client-side fetch)
Never use
useEffectfor data fetching
Chakra UI v3
Note: Chakra UI v3 has a completely different API from v2.
Key Changes from v2:
Providerrenamed toChakraProviderUse
defaultSysteminstead ofsystem()Many components removed (Avatar, Switch, Table)
Props renamed (e.g.,
bgPaletteβcolorPalette)
Theme Usage:
NextAuth v5 Beta
Configuration:
Credentials provider with bcrypt password hashing
JWT strategy for sessions
Role-based access control
Usage:
TypeScript
Type Definitions: Located in src/types/index.ts
ActionResult Pattern:
Testing
Test Structure
Writing Tests
Server Actions:
Test Commands
Common Tasks
Adding a New Page
Create a new directory in
src/app/Add
page.tsxfileExport a default Server Component
Example:
Creating a Server Action
Create file in
src/app/actions/Add
"use server"directiveExport async function
Return
ActionResult<T>type
Example:
Adding a UI Component
Create component in
src/components/ui/Export as named export
Use Chakra UI v3 components
Add TypeScript props
Example:
Resources
Documentation
Internal Documentation
ARCHITECTURE.md - System design and architecture
CODE_PATTERNS.md - Code conventions and patterns
TROUBLESHOOTING.md - Common issues and solutions
Getting Help
Check existing documentation
Search existing GitHub issues
Ask in team chat/Slack
Create a new issue with detailed description
Next Steps
Complete the Quick Start setup
Read ARCHITECTURE.md to understand the system design
Review CODE_PATTERNS.md for coding conventions
Explore the codebase using the project structure guide
Start with a small task or bug fix
Welcome aboard! π
Last updated
