Skip to content

Latest commit

 

History

History
139 lines (90 loc) · 4.15 KB

File metadata and controls

139 lines (90 loc) · 4.15 KB

If you've reached this document, it means you're interested in participating in the project.

Ask DeepWiki

Thank you for your interest in contributing to TimeLess! 🎉

This document is a set of guidelines to help you contribute to this project. Feel free to suggest changes to this document in a Pull Request.

  1. Code of Conduct
  2. How Can I Contribute?
  3. Development Guide
  4. Style Guide

Code of Conduct

This project and all those who participate in it are governed by the Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to the project maintainers.

How Can I Contribute?

Reporting Bugs

Bugs are tracked as GitHub Issues. When creating an issue, explain the problem and include additional details to help maintainers reproduce the issue:

  • Use a clear and descriptive title.
  • Describe the exact steps to reproduce the problem.
  • Describe the behavior you observed and what you expected.
  • Add screenshots or a video if possible.

Suggestions for Improvements

Suggestions for improvements are also logged as GitHub Issues.

  • Use a clear and descriptive title.
  • Provide a step-by-step description of the suggested improvement.
  • Explain why this improvement would be useful for most users.

Your Pull Request

  1. Fork the repository and clone it locally.
  2. Create a branch for your edit: git checkout -b my-new-feature.
  3. Make your changes and commit: git commit -m 'feat: add some feature'.
  4. Push to the original branch: git push origin my-new-feature.
  5. Create a Pull Request.

Before Submitting a PR

To ensure your code follows the project's standards and passes the CI pipeline, please run the following commands before submitting your Pull Request.

Tests

  • We must use assertj library (we use it already in the project) for assertions.
  • The test naming must be should_expectedBehavior_when_stateUnderTest example: should_throwException_when_ageLessThan18.

Backend (Java/Quarkus)

Run the following command to clean, format, and package the application:

./mvnw clean package

This command will trigger the impsort and formatter plugins to ensure your imports and code style are correct.

Frontend (Angular)

Navigate to the frontend directory (timeless-api/src/main/webui) and run the code style check:

cd timeless-api/src/main/webui
npm run prettier:write

Whatsapp

Navigate to the directory (timeless/whatsapp) and run the code style check:

cd timeless/whatsapp

And run the code style check:

npm run prettier:write

This script will check and apply the correct code style to your frontend code.

PreRequisites

To run this project, you will need:

  • JDK 21 or higher.

  • Maven (optional, as the project includes the mvnw wrapper).

Environment Setup

Perform the fork of the project.

Clone the repository:

git clone https://github.com/your-github-profile/timeless
cd timeless

Running the Project

To start Quarkus's development mode (dev mode), which allows live reload:

Linux/macOS:

./mvnw quarkus:dev

Windows:

mvnw.cmd quarkus:dev

The site will be available at http://localhost:8080.

Style Guide

Commit Messages

  • Use the Conventional Commits format.
  • Use the imperative mode in the subject ("Add feature" and not "Adding feature").
  • The first line must have a maximum of 50 characters.
  • Reference issues and pull requests liberally after the first line.