Getting Started
This section describes the technical part of the application generated by AppWizzy.
Understanding the Code Structure
The basic project structure of the generated full-stack app consists of the following:
Project Root:
- backend: Root directory for the backend code.
- src: Contains all source code files.
- auth: Handles authentication logic (e.g., JWT handling, login, registration).
- db: Defines database schema, API, seeders, migration, configs, and utils.
- middlewares: Contains middleware functions for Express.js (check-permissions, upload.js).
- routes: Defines the API routes/endpoints that interact with services.
- services: Contains business logic and service functions that interact with the database. Database api functions are located in src/db/api folder. The services also contain code responsible for sending messages and downloading/uploading files.
- config.js: Configuration settings for the backend (gcloud config, email settings, host, ports, etc.).
- index.js: The entry point for the backend server, typically initializes the server and sets up middleware and routes.
- Dockerfile: Defines the Docker image for the backend, specifying the environment setup, dependencies, and how to run the backend service.
- package.json: Lists dependencies, scripts, and metadata for the project.
- src: Contains all source code files.
- docker: Contains Docker-related configurations.
- docker-compose.yml: Defines multi-container Docker applications, specifies how to run both frontend and backend services together, defines environment variables, including dependencies and networking.
- frontend: Root directory for the frontend code.
- public: Static files (e.g., images, fonts, favicon).
- src: Contains all source code files.
- components: Reusable React Widgets and components (e.g., ). A complete list of widgets and components can be found on the next page (Working with Widgets on the UI).
- css: Base styles, Tailwind, custom CSS files.
- helpers: Utility functions used across the application (dataFormatter, fileSaver, userPermissions)
- hooks: Custom React hooks.
- interfaces: TypeScript interfaces for MenuAside, MenuNavBarItem, ColorKey, ColorButtonKey, Client, User.
- layouts: Layout components that define the structure of different pages (Guest, Authenticated).
- pages: Page components corresponding to different routes in the application. That folder contains all generated pages and components based on the DB schema.
- stores: State management files using Redux
Working with Widgets on the UI
All widgets and components are located in the frontend/src/components folder:
Widgets
AsideMenuBigCalendarCardBoxCardBoxModalDataGridMultiSelect (MUI customizationDragDropFilePickerFooterBarFormFilePickerNavBarNotificationBarRichTextFieldPaginationSearchSelectFieldSelectFieldManyUserCard
Base Components
BaseButtons, BaseButtonBaseDividerBaseIconFormCheckRadioGroup, FormCheckRadioFormFieldIconRoundedImageFieldLoadingSpinnerOverlayLayerSectionFullScreenSectionMainSectionTitleSectionTitleLineWithButtonSwitchField
If you face any difficulties, please message us on our Discord, Forum, Twitter, or Facebook. We will respond to your inquiry as quickly as possible!