Skip to content

guy915/Note-Taking

Repository files navigation

CSEP Template Project

This repository contains the template for the CSE project. Please extend this README.md with sufficient instructions that will illustrate for your TA and the course staff how they can run your project.

To run the template project from the command line, you either need to have Maven installed on your local system (mvn) or you need to use the Maven wrapper (mvnw). You can then execute

mvn clean install

to package and install the artifacts for the three subprojects. Afterwards, you can run ...

cd server
mvn spring-boot:run

to start the server or ...

cd client
mvn javafx:run

to run the client. Please note that the server needs to be running, before you can start the client.


Implemented Features

Basic Requirements

  • All basic requirements have been implemented.

Extensions

  • Multi-Collection
  • Interconnected Content
  • Live Language Switch
    • Supported languages: English, Dutch, German, Spanish, and Polish (uses Unicode for sepcial characters).

HCI Features

Accessibility

  • Color Contrast
  • Keyboard Shortcuts
  • Multi-modal Visualization

Navigation

  • Logical Navigation
  • Keyboard Navigation

Note we did NOT implement Undo Actions.

User Feedback

  • Error Messages
  • Informative Feedback
  • Confirmation for Key Actions

Keyboard Shortcuts

  • ESC: Focus on the search bar
  • Ctrl + N: Add a new note
  • Ctrl + up/down arrows: Navigate notes up and down
  • Ctrl + left/right arrows: Navigate collections left and right

Project Architecture

Client Module

  • client.scenes: Contains all JavaFX controllers
    • config: Configuration for saving settings between runs
    • Multiple controller classes for different functionalities (AddCollection, AddNote, etc.)
  • client.resources: Contains the visual elements and FXML views of the UI

Commons Module

  • Shared data models (Note, NoteCollection, NoteTag)

Server Module

  • server.api: REST controllers for note management
    • NoteController, NoteCollectionController, TagController
  • server.database: Repository layer for data persistence
  • server.service: Business logic layer
    • Includes Markdown service

About

Note Taking app school project.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published