Core Features
Core Features
The project is built with the following core features:
- Authentication: The project has an auth module. It supports authentication using email, phone number, and social providers.
- Database: The project has a database module. It supports multiple databases out of the box.
- Storage: The project has a file storage module. It supports multiple storage providers out of the box.
- Payment: The project has a payment module. It supports multiple payment providers out of the box.
We have multiple modules that are optional to use. You can remove any module that you don’t need. Some modules are integrated with the core features, so you need to remove the related code from the core features to remove the module.
Modules
Modules are the core features of the project. They are used to add new features to the project. They incorporate the ui components, functions, hooks, api related to the module/feature. The project is built with the following modules:
- init : Initialization module
- auth : Authentication module
- user-profile : User profile module
- file-upload : File upload module
- dashboard : Dashboard module
- landing-page : Landing page module
Overview of Module Composition
Each module has its own assets, providers (supabase, firebase, rest API) its own components, and an interface. Each module is self contained, and if you want to remove a certain module, or the functionality, just delete the folder.
- Self-Contained Modules: Each module is designed to be self-contained, making it easy to remove or modify without affecting other parts of the project.
- Multiple Provider Options: Most modules support multiple provider options such as Supabase, REST API, and Firebase.
- Easy Provider Switching: To switch providers, simply uncomment the desired provider in the file. No app restart is required for the changes to take effect.The provider can be easily changed in
<module-name>/providers/index.ts
. - Components and Interface: Each module has its own set of components and a defined interface, ensuring a clear and consistent structure across the project.
- Modular Architecture: The project’s modular architecture allows for easy removal of a module or its functionality by simply deleting the corresponding folder.
Module Interface
The interface of the module is defined in <module-name>/types/index.ts
.
Module Providers
The provider of the module is defined in <module-name>/providers/index.ts
.
Module Components
The components of the module is defined in <module-name>/components/index.ts
.
Module Hooks
The hooks of the module is defined in <module-name>/hooks/index.ts
.
Module Utils
The utils of the module is defined in <module-name>/utils/index.ts
.
Module Assets
The assets of the module is defined in <module-name>/assets/index.ts
.