App to work with notes & files in a mind map view https://neural-notes.com
The files are saved to Google Drive.
There is no DB, it's just files:
- every node on mind map is a folder
- basically it's a folder tree displayed as a mind map
- notes are just txt files inside the folders
- v1 features: lacking features for v1
- v1 UX: implement new design and UX
- Bugs and refactoring: tracker for bugs and technical debt (refactoring)
git clone https://github.com/DarthVanger/NeuralNotes.git
cd NeuralNotes
npm install
Copy .env.template file to .env and fill in Google client_id and Google api_key.
Launch server (localhost:3000)
npm start
We are using React, Redux and Sagas there.
- Component file - a file that contain React.Component with view (without business logic)
- Container file - a file that connects react with redux.
- Saga file - this file contains business logic and action handlers. Use it also to work with asynchronous stuff.
- Styles file - javascript file that exports Styled Components.
Components are living in src/components/${componentName} folders. For example Note component you will find in src/components/Note/NoteComponent.js
NoteComponent.js should export React component with exact name as filename like NoteComponent.
The same for containers - NoteContainer.
All files are using their type as filename postfix. Examples:
components
└── Note
├── NoteActions.js
├── NoteComponent.js
├── NoteConstants.js
├── NoteContainer.js
├── NoteReducer.js
├── NoteSagas.js
└── NoteStyles.js
- Use
Styledprefix for styled components. It will help you yo understand in code what kind of components you are using. For example, if you override some styles forNoteComponent, please, gave itStyledNotename.
The project uses eslint + prettier configuration. To use it fully, configure your editor. Here is a configuration example for vscode:
{
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
}
}
Short explanation how it works:
Eslint uses eslint-config-prettier which uses eslint-plugin-prettier behind the scene as special rule and avoids conflicts with defined eslint rules.
Copy .env.template file to .env and fill in Google client_id and Google api_key.
Run
npm install
npm run build
npm run start:prod
Build script puts index.html and all the assets into dist/ folder
$ ls dist/index*
dist/index.html dist/index.js dist/index.js.map
Node.js Express server serves static files and provides one endpoint for saving login events.
The server is also configured to serve index.html for all URLs, this is for React Router.