Skip to content

DarthVanger/NeuralNotes

Repository files navigation

Neural Notes

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

Boards (Kanban)

Launch locally

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

Code style / Architecture

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.

React

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.

Structure

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

Styled Components

  • Use Styled prefix 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 for NoteComponent, please, gave it StyledNote name.

Codestyle

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.

Production build

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.

About

Web app to work with notes & files in a mind map view

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors