YiChenLin2000/MemoCalendar
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
MemoCalendar A lightweight JavaFX desktop application for managing memos and calendar events. MemoCalendar allows users to register/login, create personal notes, schedule events on a calendar, and persist data locally for later use. 1. Clone this repository: git clone https://github.com/YiChenLin2000/MemoCalendar.git 2. Open the project in an IDE that supports JavaFX 3. Run Main.java to start the application. 4. No external dependencies required – just ensure Java 11+ and JavaFX are set up. Features **User Authentication** - Register new users - Login with existing credentials - Change password **Memo Management** - Add, view, edit, and delete memos - Sort memos by creation time (latest first) - Persist memos in local file using serialization **Calendar Functionality** - Browse a monthly calendar - Add custom events with time and title - Highlight days with events **Local Data Persistence** - Store user, memo, and event data locally in `.dat` files - Restore data after application restarts --- Technologies Used - **JavaFX** – UI framework for building modern desktop applications - **SceneBuilder** – Declarative UI layout - **Java Serialization** – For saving and loading user/memo/event data - **OOP Principles** – Class Definition, Inheritance/Polymorphism, Abstract Classes/Interfaces, Generics/Collections/Iterators, Lists, Set/Maps Project Structure | Functional Module | Main Files | |--------------------|----------------------------------------------------------------------------| | Login / Register | `LoginView.java`, `RegisterView.java`, `User.java`, `UserManager.java` | | Password Management| `ChangePasswordView.java` | | Memo Function | `Memo.java`, `MemoController.java`, `add_memo.fxml`, `memoView.fxml` | | Calendar Function | `CalendarView.java`, `CalendarView.fxml`, `Event.java` | | Data Persistence | `DataManager.java`, `memos.dat` | | Main Entry | `Main.java`, `MainAppView.java`