Thank you for your interest in contributing to UKit. To maintain code quality and project consistency, please follow these guidelines.
- Create a branch for your changes:
git checkout -b type/short-description. - Apply your changes.
- Commit using Conventional Commits standards.
- Push your branch and open a Pull Request.
We enforce the Conventional Commits specification:
- feat: A new feature.
- fix: A bug fix.
- refactor: A code change that neither fixes a bug nor adds a feature (e.g., TypeScript migration).
- style: Changes that do not affect the meaning of the code (formatting, missing semi-colons, etc.).
- chore: Updating dependencies, configuration files, or scripts.
- TypeScript First: Every new file must be created using TypeScript (
.tsor.tsx). - Functional Components: Favor functional components and Hooks over class components.
- Map Integration: Do not use
react-native-maps. All maps must be implemented using a WebView with Leaflet and OpenStreetMap. - Styling: Always use the Design Tokens from
src/shared/theme/Theme.js. Avoid hardcoded colors or spacing values. - Internationalization: All user-facing strings must be localized via
Translatorinfr.js,en.js, andes.js.
src/
├── features/ # Domain-specific modules
│ ├── Crous/ # Restaurant services and menus
│ ├── Map/ # OpenStreetMap integration
│ ├── Schedule/ # Timetable and course management
│ └── ...
├── shared/ # Cross-cutting concerns
│ ├── i18n/ # Localization files
│ ├── navigation/ # Navigation logic (v6)
│ ├── services/ # Core logic (AppCore, DataService)
│ ├── theme/ # Design tokens and theme definitions
│ └── ui/ # Atomic UI components
- Code compiles without TypeScript errors.
- No hardcoded strings (all translated).
- Design tokens used for all styles.
- No
anytypes unless strictly necessary. - Commits follow the convention.