- @types: to contain global type definitions
- app: to contain pages.
- student: student related pages
- tutor: tutor related pages
- auth: authentication related pages
- Note: keep pages tsx simple by placing the bulk tsx content inside the containers folder.
- common: custom hooks, utils and HOCs
- components: UI components to be used globally, such as buttons, inputs, modals, drawers, headers, footers, etc.
- configs: configurations, such as environmental variables
- containers: the tsx body content for each page. Each container should optionally have a subfolder `components' to contain container specific UI components. Extract UI elements into individual components when the code is getting too bulky to ensure maintainability and readability.
- redux: redux related logic.
- apis: services to request backend.
- reducers and slices: manages in-app states.
- Development Language: Typescript
- UI library: ant design
- React framework: Next.js, React.js
- CSS: Tailwind CSS
- JS utilities: Lodash
- State management and data fetching: Redux Toolkit
- Internationalisation: next-intl