This is a mobile note-taking application developed as a course project for Mobile Application Development, Summer 2021, at Beijing University of Technology. The app provides a simple and efficient way to create, organize, and manage your notes on HarmonyOS devices.
![image](https://private-user-images.githubusercontent.com/29000488/322320619-1af8abc0-b9f0-49ae-b357-dc8ced4b4cee.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk4ODQ3NDEsIm5iZiI6MTczOTg4NDQ0MSwicGF0aCI6Ii8yOTAwMDQ4OC8zMjIzMjA2MTktMWFmOGFiYzAtYjlmMC00OWFlLWIzNTctZGM4Y2VkNGI0Y2VlLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE4VDEzMTQwMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTMxYjIyN2IzOWI1Mjg5MjM5NDkxNTg5MzY1ZmYwNTZkNTZmYzUzNGNjNzJlZWIwMzk5NmQwNmQ3NDQwMWVhZDkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.oOTb6LKVW4_GZ_aDlmwKi0dHTxegYmDleEQIRXqBLs4)
- Create Notes: Easily create new notes with text, images, and other media.
- Edit Notes: Update and modify your existing notes as needed.
- Organize Notes: Categorize your notes using folders or tags for better organization.
- Sync across Devices: Your notes are automatically synced across all your HarmonyOS devices.
![main panel](https://private-user-images.githubusercontent.com/29000488/322320436-7a20bf2b-848a-4a8d-980b-0c88f4c79cd0.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk4ODQ3NDEsIm5iZiI6MTczOTg4NDQ0MSwicGF0aCI6Ii8yOTAwMDQ4OC8zMjIzMjA0MzYtN2EyMGJmMmItODQ4YS00YThkLTk4MGItMGM4OGY0Yzc5Y2QwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE4VDEzMTQwMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTM0ZmNlMzYzMTA1YzkyNDJlYjczYmNkMDdmZmQyMDgwMGE0N2MzYTkxZTljYzc5MGQ1Y2JmNzg0ZWY0ZWIzODAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.1Cc0vOlSGwizaQEHrACYpSXMV2sT7AV9zswdGurgcOA)
![enter title](https://private-user-images.githubusercontent.com/29000488/322320449-1bf4cd53-4e72-49b9-9919-c08ab7aa5901.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk4ODQ3NDEsIm5iZiI6MTczOTg4NDQ0MSwicGF0aCI6Ii8yOTAwMDQ4OC8zMjIzMjA0NDktMWJmNGNkNTMtNGU3Mi00OWI5LTk5MTktYzA4YWI3YWE1OTAxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE4VDEzMTQwMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWRkMTgwOTVmYjBmZGRlMTY3ZGVkOTkzNGI3YTkwZjg3NmJlZDg1YWMzMjE0Yzg4NmYwYzBmZDg4ZDY0MGU2NzUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.5RCEtg10WbhicOmOju9i0IQEblrE6mgvoncq2f7ACbo)
![editing panel](https://private-user-images.githubusercontent.com/29000488/322320489-02c96aab-2da3-4d76-8f1e-4acb708e73a9.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk4ODQ3NDEsIm5iZiI6MTczOTg4NDQ0MSwicGF0aCI6Ii8yOTAwMDQ4OC8zMjIzMjA0ODktMDJjOTZhYWItMmRhMy00ZDc2LThmMWUtNGFjYjcwOGU3M2E5LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE4VDEzMTQwMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTVkY2RlNDA0M2IyMjFmODVmM2EyMGViMjE2MjRjYWFhMGZlZDQ3NjIzM2MyOWM3MTA4ZmU0NmNjZDg1OGJkZmQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.ulolXTZusfKURJBV0HqEFbuxC719u1tE74mRIL2tXEw)
![todo-list](https://private-user-images.githubusercontent.com/29000488/322320511-55e89f2b-205c-4f85-92c1-fe528544618a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk4ODQ3NDEsIm5iZiI6MTczOTg4NDQ0MSwicGF0aCI6Ii8yOTAwMDQ4OC8zMjIzMjA1MTEtNTVlODlmMmItMjA1Yy00Zjg1LTkyYzEtZmU1Mjg1NDQ2MThhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE4VDEzMTQwMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTViMGI4NTJjMjZmOGRjOWRhMzIyODg0M2U0MjViYWU2MzM0YTUzOGViNmY0YmY0N2Y3ZDhhZTI1MTkzYzYwNjMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.P51VYm4eAO6cvbLiYcAg_8sJ1cQBRi5dwalmY747GtE)
![info](https://private-user-images.githubusercontent.com/29000488/322320516-e5ce01b3-bfb3-4de2-9f53-2954fc93256a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk4ODQ3NDEsIm5iZiI6MTczOTg4NDQ0MSwicGF0aCI6Ii8yOTAwMDQ4OC8zMjIzMjA1MTYtZTVjZTAxYjMtYmZiMy00ZGUyLTlmNTMtMjk1NGZjOTMyNTZhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE4VDEzMTQwMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTg3M2Y4MDc5YmQ2ZWIxZjc3NDEyNzhiYzQzNzNlNjlkYjk3YzMxYTQyZjVkN2Q1MTRkNjQ1YzVjZGNhODMxYzkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.5tbx8YVYURcUQ-BmMzTbKyjGEsZBgM408KYFr8QtJIc)
This section provides instructions for setting up the development environment and building the Note Taking App for HarmonyOS.
- DevEco Studio: The official IDE for HarmonyOS development. You can download it from the Huawei Developer website.
- Java Development Kit (JDK): Make sure you have JDK 8 or later installed on your system.
- Android Studio (Optional): If you prefer to use Android Studio for Java development, you can set it up for HarmonyOS development by following the official guide.
- Clone the project repository to your local machine:
git clone https://github.com/your-username/note-taking-app.git
- Open DevEco Studio and import the project by selecting "File" > "Open" and navigating to the cloned repository folder.
- If prompted, set up the Java development environment by configuring the JDK location.
- In DevEco Studio, connect your HarmonyOS device or emulator to your development machine.
- Make sure your device or emulator is set up for development mode by following the official instructions.
- Build the app by clicking the "Build" button in the DevEco Studio toolbar or by selecting "Build" > "Build App(s)".
- If the build is successful, you can run the app on your connected device or emulator by clicking the "Run" button in the DevEco Studio toolbar or by selecting "Run" > "Run App".
src/
├── main/
│ ├── java/
│ │ └── com/example/noteapp/
│ │ ├── abilities/
│ │ │ ├── MainActivity.java
│ │ │ └── NoteDetailAbility.java
│ │ ├── beans/
│ │ │ └── Note.java
│ │ ├── databaseutils/
│ │ │ └── DatabaseHelper.java
│ │ ├── listeners/
│ │ │ └── NoteItemClickListener.java
│ │ ├── providers/
│ │ │ └── NoteItemProvider.java
│ │ ├── slices/
│ │ │ └── NoteItemSlice.java
│ │ └── utils/
│ │ └── NoteUtils.java
│ └── resources/
│ ├── base/
│ │ ├── layout/
│ │ │ ├── activity_main.xml
│ │ │ ├── activity_note_detail.xml
│ │ │ └── slice_note_item.xml
│ │ ├── strings.json
│ │ └── ...
│ └── ...
├── ...
└── ...
- abilities:
MainActivity.java
: The main Ability responsible for displaying the list of notes and handling user interactions.NoteDetailAbility.java
: The Ability for creating, editing, and viewing note details. - beans:
Note.java
: The data model class representing a single note. - databaseutils:
DatabaseHelper.java
: A utility class for managing the SQLite database operations (create, read, update, delete). - listeners:
NoteItemClickListener.java
: A listener class for handling note item clicks in the list. - providers:
NoteItemProvider.java
: A class that implements BaseItemProvider to provide data to the ListContainer for displaying note items. - slices:
NoteItemSlice.java
: A Slice class representing the layout and behavior of a single note item in the list. - utils:
NoteUtils.java
: A utility class containing helper methods for various operations (e.g., date formatting, string manipulation). - resources/base/layout:
activity_main.xml
: The layout file for the main activity.activity_note_detail.xml
: The layout file for the note detail activity.slice_note_item.xml
: The layout file for a single note item in the list. - resources/base/strings.json: This file contains the string resources used in the app.
If you would like to contribute to this project, please follow these steps:
- Fork the repository.
- Create a new branch for your feature or bug fix.
- Make the necessary changes and commit them.
- Push your changes to your forked repository.
- Submit a pull request to the main repository.
This project is licensed under the MIT License.