SUSI.AI uses react local state and redux for global state management and data flow.
Please read the Redux docs for more information on the Redux architecture and terminology (such as actions, reducers, and stores).
After creation and a successful build, your project should have the following file structure:
susi.ai/
.github
docs
public
src
__tests__
apis
components
About
Admin
Auth
ChatApp
cms
Contact
CookiePolicy
Footer
NavigationBar
NotFound
Settings
shared
smart-speaker
Translate
constants
helpers
images
redux
actions
actionTypes
middleware
reducers
utils
App.js
App.test.js
index.css
index.js
MUItheme.js
setupTests.js
store.js
withTracker.js
.editorconfig
.env
.eslintrc
.gitignore
.pretteirrc
.travis.yml
deploy.sh
Dockerfile
LICENSE
package-lock.json
package.json
surge_deploy.sh
docs
- instructions for setting up the project locally, deploying using Surge. It also contains information regarding Accounting, Skill language.public
- static assets like images, external CSS files, HTML filepublic/index.html
- is the page template.src
- Javascript source codesrc/__tests__/
- tests for components, followsjest
testing suitesrc/apis
- SUSI server API requestssrc/components/
- react components-
src/components/Translate/
- has all the pot files required to integrate the project with Weblate.
src/constants
- constants usedsrc/helpers
- ajax helper for data fetching requestsrc/images
- static images usedsrc/redux/
- actionTypes, actions, reducers and store configuration for Reduxsrc/utils
- common utility functionssrc/setupTests.js/
- custom scripts written for failing tests to pass due to the deprecated librariessrc/App.test.js/
- entry point for all tests in the__tests__
folder.index.js
- entry point for app.pretteirrc
- Pretteir config.travis.yml
- Travis CI configdeploy.sh
- handles the continuous Travis Deployment of the project ongh-pages
surge_deploy.sh
- automatic Surge deploy script
The components directory is broken into subdirectories for separate components:
About
- overview, about and other static pagesAdmin
- admin panelAuth
- authentication relatedChatApp
- chat composing, displaying messages for SUSIcms
- skill CMS for editing, browsing skills, bots, dashboard, etc.CookiePolicy
- cookie policyFooter
- footer componentNavigationBar
- navigationNotFound
- not foundSettings
- accounts settingsshared
- common shared components for reusabilitysmart-speaker
- components specific to smart speaker
withTracker
- HOC for tracking, scroll to top on route change
MUItheme
- material-ui theme customization
App.js
- top-level React component for app