Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mlsakiit/notemind
For Flutter developers: contribute to NoteMind, a note-taking app for creating and sharing notes. It features handwritten input and mind mapping. Pull requests welcome!
https://github.com/mlsakiit/notemind
api backend beginner-friendly dart expressjs flutter flutter-apps hacktoberfest hacktoberfest2024 mongodb mongoose nodejs rest-api
Last synced: 2 months ago
JSON representation
For Flutter developers: contribute to NoteMind, a note-taking app for creating and sharing notes. It features handwritten input and mind mapping. Pull requests welcome!
- Host: GitHub
- URL: https://github.com/mlsakiit/notemind
- Owner: MLSAKIIT
- License: mit
- Created: 2024-10-11T10:18:34.000Z (3 months ago)
- Default Branch: master
- Last Pushed: 2024-10-29T18:38:05.000Z (2 months ago)
- Last Synced: 2024-10-29T20:28:15.975Z (2 months ago)
- Topics: api, backend, beginner-friendly, dart, expressjs, flutter, flutter-apps, hacktoberfest, hacktoberfest2024, mongodb, mongoose, nodejs, rest-api
- Language: Dart
- Homepage:
- Size: 526 KB
- Stars: 7
- Watchers: 0
- Forks: 9
- Open Issues: 17
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# NoteMind: Note-Taking and Mind Mapping Application
## Introduction
**Project Overview**:
NoteMind is a Flutter application that allows users to take notes, both typed and handwritten, visually organize their thoughts using mind maps, and collaborate with other users to work together. This application is designed for students, professionals, and anyone looking to improve their productivity and organization.## Technologies Used
- **Flutter**: Framework for building the application.
- **Dart**: Programming language used in Flutter.
- **Provider**: State management solution.
- **SQLite**: Local storage for notes.
- **TensorFlow Lite**: For handwriting recognition.## Installation
### Prerequisites
1. **Flutter SDK (>=2.0.0)**: Ensure you have the Flutter SDK installed. You can download it from [Flutter's official website](https://flutter.dev/docs/get-started/install).
2. **Dart SDK**: Comes bundled with Flutter.
3. **IDE**: Install Android Studio or VS Code with Flutter and Dart plugins.### Setup Instructions
1. **Clone the repository**:
```bash
git clone https://github.com/MLSAKIIT/NoteMind.git
cd note_mind2. **Install dependencies**:
```bash
flutter pub get3. **Run the application**:
```bash
flutter run
### Architecture Overview1. **Project Structure**:
```bash
/note_mind
│
├── android
├── ios
├── lib
│ ├── models
│ │ ├── note.dart
│ │ └── mind_map.dart
│ ├── providers
│ │ └── note_provider.dart
│ ├── views
│ │ ├── home_screen.dart
│ │ ├── note_screen.dart
│ │ ├── login_screen.dart
│ │ ├── signup_screen.dart
│ │ └── profile_screen.dart
│ ├── widgets
│ │ ├── note_card.dart
│ │ ├── mind_map_widget.dart
│ │ └── custom_text_field.dart
│ ├── services
│ │ └── handwriting_recognition_service.dart
│ ├── main.dart
│ └── utils
│ └── database_helper.dart
└── test
### Design Patterns
- **Provider**: For state management
- **Repository Pattern**: To manage data operations.### Features
**Core Features**
- **Note Creation**: Users can create, edit, and delete notes.
- **Handwritten Input**: Capture handwritten notes using a stylus or finger, which are converted to text using handwriting recognition.
- **Mind Mapping**: Visual representation of thoughts linked to notes.
- **Search Functionality**: Quickly find notes by keywords.
- **Collaborative Functionality**: Users can collaborate with others in real-time to create, edit, and organize notes together.**User Interface**
- **Home Screen**: Displays a list of notes and buttons for creating new notes or mind maps.
- **Note Screen**: Interface for creating/editing notes, including options for handwriting input.
- **Mind Map Screen**: Visual layout of related notes in a mind map format.### Code Documentation
**Models**
- **note.dart**: Defines the Note class with properties like title, content, and timestamp.
- **mind_map.dart**: Defines the MindMap class with connections between notes.**Handwriting Recognition**
- **handwriting_recognition_service.dart**: Contains logic to handle the conversion of handwritten notes to text using TensorFlow Lite.
**Example of Note Model**
class Note {
final int id;
final String title;
final String content; // This will store converted text
final DateTime timestamp;Note({
required this.id,
required this.title,
required this.content,
required this.timestamp,
});
}### Testing
**Testing Frameworks**
- Flutter Test for unit and widget tests.
**Running Tests**
- To run unit tests:
```bash
flutter test### Deployment
**Build Instructions**
- To build the application for Android:
```bash
flutter build apk- For iOS, ensure you have a valid provisioning profile and run:
```bash
flutter build ios**App Store Submission**
Refer to the official documentation for guidelines on submitting to the App Store and Google Play.### Troubleshooting
**Common Issues**
**Error: "Unable to locate package"**: Ensure all dependencies are correctly listed in pubspec.yaml.
**Database Issues**: Verify that SQLite is properly configured.
**Handwriting Recognition Issues**: Ensure TensorFlow Lite models are correctly integrated.
**FAQs**
**How do I back up my notes?**
Use the export feature in the app to save notes as text files.### Contributing
**Contribution Guidelines**
1. Fork the repository.
2. Create a new branch (git checkout -b feature/YourFeature).
3. Make your changes and commit them (git commit -m 'Add some feature').
4. Push to the branch (git push origin feature/YourFeature).
5. Open a pull request.
**License**
This project is licensed under the MIT License. See the LICENSE file for details.
**Additional Resources**
- Flutter Documentation
- SQLite Flutter Plugin
- TensorFlow Lite Flutter Plugin### Issues :
- Light theme
- Password obscure and verification
- Backend + Frontend Integration (Connect API for data sync).- Backend Issues :
- Create routes and controllers for update user profile. Include roll number and name.
- Create search route for finding notes using keywords using the notes model.
- Create a model of mind maps including CRUD operations for creating new mind maps. Make sure keep track of related note ids.
- Implement rate limiters and cors for the server
- Implement Collaborative functionality using websockets for sending changes realtime.