Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/khaledashrafh/taskarium
Taskarium is a powerful and user-friendly task and note management application developed using Spring Boot, Spring MVC, and other modern technologies. This project allows users to efficiently manage their tasks and notes while providing a secure environment with tailored access controls. Built with clean architecture principles in mind
https://github.com/khaledashrafh/taskarium
authentication authorization h2-database lombok mapstruct maven mvc mvc-architecture mvc-pattern note-managment rbac security spring-boot spring-jpa spring-mvc spring-security task-management thymeleaf thymeleaf-template-engine
Last synced: 4 days ago
JSON representation
Taskarium is a powerful and user-friendly task and note management application developed using Spring Boot, Spring MVC, and other modern technologies. This project allows users to efficiently manage their tasks and notes while providing a secure environment with tailored access controls. Built with clean architecture principles in mind
- Host: GitHub
- URL: https://github.com/khaledashrafh/taskarium
- Owner: KhaledAshrafH
- License: mit
- Created: 2024-05-21T11:52:49.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2024-10-12T16:25:34.000Z (4 months ago)
- Last Synced: 2024-12-07T11:08:57.419Z (2 months ago)
- Topics: authentication, authorization, h2-database, lombok, mapstruct, maven, mvc, mvc-architecture, mvc-pattern, note-managment, rbac, security, spring-boot, spring-jpa, spring-mvc, spring-security, task-management, thymeleaf, thymeleaf-template-engine
- Language: Java
- Homepage:
- Size: 448 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Taskarium - Task and Note Management System
Taskarium is a powerful and user-friendly task and note management application developed using Spring Boot, Spring MVC, and other modern technologies. This project allows users to efficiently manage their tasks and notes while providing a secure environment with tailored access controls. Built with clean architecture principles in mind, Taskarium offers great maintainability and scalability for future development.
## Table of Contents
- [Features](#features)
- [Technologies Used](#technologies-used)
- [System Requirements](#system-requirements)
- [Usage](#usage)
- [Security](#security)
- [Project Structure](#project-structure)
- [Screenshots](#screenshots)
- [Contributing](#contributing)
- [License](#license)### Features
* User registration and login with secure password storage.
* Role-based access control (RBAC) for user permissions.
* Task creation, editing, and deletion with customizable descriptions, colors, and statuses.
* Note creation, editing, and deletion associated with specific tasks.
* Users can only view and manage their own notes and tasks, ensuring data privacy.
* Responsive front-end design using Thymeleaf templates.## Technologies Used
- **Spring Boot**: Framework for building production-ready applications.
- **Spring MVC**: For creating web applications in a clean and modular way.
- **Spring Security**: For handling authentication and authorization.
- **Spring Data JPA**: For database interactions using JPA (Java Persistence API) with **H2 database**.
- **Thymeleaf**: For rendering dynamic web pages and defining server-side templates.
- **MapStruct**: For mapping between DTOs and entities.
- **Lombok**: To minimize boilerplate code.## System Requirements
- **Java Development Kit (JDK)**: Version 17 or later
- **Maven**: For dependency management
- **H2 Database**: Bundled with the project## Usage
1. Clone the project repository.
2. Install the required dependencies (rebuild the pom.xml file).
3. Configure the database connection (if using a database other than H2).
4. Run the application using your preferred Java IDE or command line:
```bash
mvn spring-boot:run
```
5. Access the application in your browser at `http://localhost:8080` (default port).## Security
Taskarium implements robust security measures:
- Each user has their own credentials, allowing them to log in securely.
- Users can only access and manage tasks and notes they own.
- Role-based access control is enabled, ensuring that an admin can perform operations while preventing unauthorized access for regular users.## Project Structure
The project follows a clean architecture approach with clear separation of concerns:* **Controller**: Handles user requests and interacts with services.
* **Service**: Business logic layer that interacts with repositories.
* **Repository**: Data access layer.
* **Model**: Contains entity classes representing database tables.
* **DTO**: Data Transfer Objects used for communication between layers.
* **Exception**: Custom exception classes for handling application errors.
* **Filter**: Spring Security filters for implementing sepcific constraints.
* **Security**: Configuration for user roles, permissions, and authentication mechanisms.
* **Advice**: Aspect-oriented programming aspects for cross-cutting concerns.
* **Layout**: Thymeleaf templates for building the user interface.## Screenshots
Here are some screenshots that showcase the user interface of Taskarium:
## Contributing
Contributions are welcome! Please fork the repository and create a pull request with your changes.## License
This project is licensed under the [MIT License](LICENSE).