From 9ef8eaa90e3661c3fd9b31e6fddfefdcdeda94ca Mon Sep 17 00:00:00 2001 From: Guillaume DERAMCHI Date: Mon, 6 Jan 2025 15:38:01 +0100 Subject: [PATCH 01/15] Update README.md First version, to verify and update --- README.md | 119 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 118 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index d1a5e73..762e8b2 100644 --- a/README.md +++ b/README.md @@ -1 +1,118 @@ -# Quickest Path \ No newline at end of file +# ๐Ÿ“‹ Project Overview + +This project aims to develop a high-performance software solution that calculates the quickest path between two landmarks in the United States. The solution will be exposed as a REST API, capable of handling requests efficiently and returning responses in JSON or XML formats. + +The project dataset consists of a large file (`USA-roads.csv`) with approximately 24 million connections between landmarks, representing the travel time between each pair. + +# ๐Ÿ“‚ Project Structure + +- `src/`: Contains the C++ source code files +- `README.md`: Project documentation + +# โš™๏ธ Setup and Installation + +Clone the repository: +```sh +git clone https://github.com/algosup/2024-2025-project-3-quickest-path-team-7.git +cd 2024-2025-project-3-quickest-path-team-7 +``` + +Build the project using CMake: +```sh +mkdir build +cd build +cmake .. +make +``` + +Run the server: +```sh +./quickest_path_server +``` + +# ๐Ÿ›  Technologies Used + +- **C++**: Core language for implementing the algorithms and server +- **Crow**: Lightweight HTTP server for handling REST API requests +- **nlohmann/json**: JSON parsing and serialization +- **PugiXML**: XML parsing and serialization + +# ๐Ÿš€ Features + +- **Quick Path Calculation**: Calculates the shortest or approximate quickest path between two landmarks +- **REST API**: Provides a web service for sending requests and receiving responses +- **Multi-Format Support**: Returns responses in JSON or XML +- **Performance Optimization**: Designed to handle large datasets efficiently + +# ๐Ÿ“š API Documentation + +**Endpoint**: `GET /quickest-path` + +**Request Parameters**: +- `start_id` (String): ID of the start landmark +- `end_id` (String): ID of the destination + +**Example Request**: +``` +GET /quickest-path?start_id=100&end_id=200 +``` + +**Response Formats**: + +**JSON**: +```json +{ + "path": ["Landmark_A", "Landmark_B", "Landmark_C"], + "travel_time": 120 +} +``` + +**XML**: +```xml + + + Landmark_A + Landmark_B + Landmark_C + + 120 + +``` + +# ๐Ÿ“ˆ Algorithm Explanation + +The project uses the A* (A-Star) algorithm to calculate the quickest path between two landmarks. The algorithm combines: + +- `g(n)`: The cost from the start landmark to a given landmark +- `h(n)`: A heuristic estimate of the cost from the current landmark to the destination + +This allows the algorithm to prioritize paths that are more likely to lead to the destination faster. + +If geographical coordinates (latitude and longitude) are not available, Dijkstra's Algorithm will be used as a fallback. + +# ๐Ÿงช Testing + +Unit tests are provided in the `tests/` folder to ensure the correctness of the pathfinding algorithms and API functionality. Run the tests using: +```sh +make test +``` + +# ๐Ÿ“ Future Improvements + +- Add support for real-time traffic data +- Implement caching to speed up repeated requests +- Explore using Bidirectional Search to further optimize pathfinding + +# ๐Ÿ‘จโ€๐Ÿ’ป Contributors + +- Abderrazaq Makran (Program Manager) +- Elone Dellile (Project Manager) +- Guillaume Deramchi (Technical Lead) +- Pierre Gorin (Quality Assurance) +- Benoรฎt De Keyn (Software Engineer) +- Axel David (Software Engineer) +- Tino Gabet (Technical Writer) + +# ๐Ÿ“„ License + +This project is licensed under the MIT License. See the `LICENSE` file for details. From bfbc936e8063f987c2004f7b0cbae2ea0ef6a7ef Mon Sep 17 00:00:00 2001 From: DELILLE Elone <147847949+HiNett@users.noreply.github.com> Date: Mon, 6 Jan 2025 16:00:53 +0100 Subject: [PATCH 02/15] Create LICENSE --- LICENSE | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 LICENSE diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..3e464d5 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2025 ALGOSUP + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. From 3ea4f0745ad41d21245749834361e6693acdc6fc Mon Sep 17 00:00:00 2001 From: ALGOSUP Date: Wed, 8 Jan 2025 09:26:42 +0100 Subject: [PATCH 03/15] Add Google Tests and Github Actions CI --- .github/workflows/ci.yml | 32 ++++++++++++++++++++++++++++++++ .gitignore | 2 ++ .gitmodules | 3 +++ CMakeLists.txt | 19 +++++++++++++++++++ code/hello_world.cpp | 6 ++++++ code/unit_tests.cpp | 14 ++++++++++++++ googletest | 1 + 7 files changed, 77 insertions(+) create mode 100644 .github/workflows/ci.yml create mode 100644 .gitignore create mode 100644 .gitmodules create mode 100644 CMakeLists.txt create mode 100644 code/hello_world.cpp create mode 100644 code/unit_tests.cpp create mode 160000 googletest diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..121b1a1 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,32 @@ +name: CI + +on: + push: + branches: + - main + - dev + pull_request: + branches: + - main + +jobs: + build-and-test: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v3 + with: + submodules: recursive # Fetch Google Test submodule + + - name: Install dependencies + run: sudo apt-get update && sudo apt-get install -y cmake build-essential + + - name: Configure project + run: cmake -S . -B build + + - name: Build project + run: cmake --build build + + - name: Run unit tests + run: cd build && ctest --output-on-failure \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e0629d6 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +googletest +build \ No newline at end of file diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..8cf8b5e --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "googletest"] + path = googletest + url = https://github.com/google/googletest.git diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..f582649 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,19 @@ +cmake_minimum_required(VERSION 3.10) +project(QuickestPathTeam7) + +# Set the C++ standard +set(CMAKE_CXX_STANDARD 11) + +# Include Google Test +add_subdirectory(googletest) + +# Add Hello World executable +add_executable(hello_world code/hello_world.cpp) + +# Add Unit Tests executable +add_executable(unit_tests code/unit_tests.cpp) +target_link_libraries(unit_tests gtest gtest_main) + +# Enable testing +enable_testing() +add_test(NAME UnitTests COMMAND unit_tests) \ No newline at end of file diff --git a/code/hello_world.cpp b/code/hello_world.cpp new file mode 100644 index 0000000..f96378c --- /dev/null +++ b/code/hello_world.cpp @@ -0,0 +1,6 @@ + #include + + int main() { + std::cout << "Hello, World!" << std::endl; + return 0; + } \ No newline at end of file diff --git a/code/unit_tests.cpp b/code/unit_tests.cpp new file mode 100644 index 0000000..0deffb7 --- /dev/null +++ b/code/unit_tests.cpp @@ -0,0 +1,14 @@ + #include + + // A simple test case + TEST(SampleTest, BasicAssertions) { + // Check if 1 + 1 equals 2 + EXPECT_EQ(1 + 1, 2); + // Check if 1 + 1 does not equal 3 + EXPECT_NE(1 + 1, 3); + } + + int main(int argc, char **argv) { + ::testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); + } \ No newline at end of file diff --git a/googletest b/googletest new file mode 160000 index 0000000..7d76a23 --- /dev/null +++ b/googletest @@ -0,0 +1 @@ +Subproject commit 7d76a231b0e29caf86e68d1df858308cd53b2a66 From c526e2f4f9a0efdb8b691bc2a6bb7bb2fb41da5d Mon Sep 17 00:00:00 2001 From: ALGOSUP Date: Wed, 8 Jan 2025 09:28:13 +0100 Subject: [PATCH 04/15] Add 'qa' Branch to trigger push and run tests --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 121b1a1..bf78fca 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -5,6 +5,7 @@ on: branches: - main - dev + - qa pull_request: branches: - main From 73791d53d8f86e60866f0f820615145b90ee854b Mon Sep 17 00:00:00 2001 From: ALGOSUP Date: Wed, 8 Jan 2025 09:43:22 +0100 Subject: [PATCH 05/15] Remove googletest submodule --- googletest | 1 - 1 file changed, 1 deletion(-) delete mode 160000 googletest diff --git a/googletest b/googletest deleted file mode 160000 index 7d76a23..0000000 --- a/googletest +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 7d76a231b0e29caf86e68d1df858308cd53b2a66 From 76cd792e3db4c8d629c480bc2bcd0d73e1ba6e35 Mon Sep 17 00:00:00 2001 From: ALGOSUP Date: Wed, 8 Jan 2025 09:56:19 +0100 Subject: [PATCH 06/15] Modify Tests and Workflow name --- .github/workflows/{ci.yml => ct.yml} | 2 +- CMakeLists.txt | 1 + code/hello_world.cpp | 11 +++--- code/unit_tests.cpp | 51 ++++++++++++++++++++-------- 4 files changed, 45 insertions(+), 20 deletions(-) rename .github/workflows/{ci.yml => ct.yml} (96%) diff --git a/.github/workflows/ci.yml b/.github/workflows/ct.yml similarity index 96% rename from .github/workflows/ci.yml rename to .github/workflows/ct.yml index bf78fca..63ae517 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ct.yml @@ -1,4 +1,4 @@ -name: CI +name: Continuous Testing on: push: diff --git a/CMakeLists.txt b/CMakeLists.txt index f582649..34c2bab 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,3 +1,4 @@ +#CMakeLists.txt cmake_minimum_required(VERSION 3.10) project(QuickestPathTeam7) diff --git a/code/hello_world.cpp b/code/hello_world.cpp index f96378c..f0d960b 100644 --- a/code/hello_world.cpp +++ b/code/hello_world.cpp @@ -1,6 +1,7 @@ - #include +// code/hello_world.cpp +#include - int main() { - std::cout << "Hello, World!" << std::endl; - return 0; - } \ No newline at end of file +int main() { + std::cout << "Hello, World!" << std::endl; + return 0; +} \ No newline at end of file diff --git a/code/unit_tests.cpp b/code/unit_tests.cpp index 0deffb7..bcc1473 100644 --- a/code/unit_tests.cpp +++ b/code/unit_tests.cpp @@ -1,14 +1,37 @@ - #include - - // A simple test case - TEST(SampleTest, BasicAssertions) { - // Check if 1 + 1 equals 2 - EXPECT_EQ(1 + 1, 2); - // Check if 1 + 1 does not equal 3 - EXPECT_NE(1 + 1, 3); - } - - int main(int argc, char **argv) { - ::testing::InitGoogleTest(&argc, argv); - return RUN_ALL_TESTS(); - } \ No newline at end of file +#include +#include +#include +#include "hello_world.cpp" // Include hello_world.cpp to use printHelloWorld + +// Test fixture to capture output +class HelloWorldTest : public ::testing::Test { +protected: + std::ostringstream captured_output; + + // Override the stream buffer of std::cout to capture printed output + void SetUp() override { + std::streambuf* original_buffer = std::cout.rdbuf(); + std::cout.rdbuf(captured_output.rdbuf()); + } + + void TearDown() override { + std::cout.rdbuf(nullptr); // Reset std::cout to original buffer + } +}; + +// Test case: check if printHelloWorld() outputs the correct string +TEST_F(HelloWorldTest, OutputsHelloWorld) { + printHelloWorld(); + EXPECT_EQ(captured_output.str(), "Hello, World!\n"); +} + +// Test case: check if printHelloWorld() does NOT output an incorrect string +TEST_F(HelloWorldTest, DoesNotOutputIncorrectString) { + printHelloWorld(); + EXPECT_NE(captured_output.str(), "Hello, Universe!\n"); // Deliberate incorrect string +} + +int main(int argc, char **argv) { + ::testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); +} \ No newline at end of file From 3dd1720e62e4a53997198dc3970b358a7003cb6b Mon Sep 17 00:00:00 2001 From: ALGOSUP Date: Wed, 8 Jan 2025 10:12:29 +0100 Subject: [PATCH 07/15] re-add googletest to the .gitignore --- .gitignore | 2 +- googletest | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) create mode 160000 googletest diff --git a/.gitignore b/.gitignore index e0629d6..ce49d95 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ -googletest +# googletest build \ No newline at end of file diff --git a/googletest b/googletest new file mode 160000 index 0000000..7d76a23 --- /dev/null +++ b/googletest @@ -0,0 +1 @@ +Subproject commit 7d76a231b0e29caf86e68d1df858308cd53b2a66 From fd801526a1f4044f6a0336dcfec3066130f8c31f Mon Sep 17 00:00:00 2001 From: ALGOSUP Date: Wed, 8 Jan 2025 10:26:43 +0100 Subject: [PATCH 08/15] fixing unit tests file --- code/hello_world.cpp | 8 ++++++-- code/unit_tests.cpp | 16 ++++++---------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/code/hello_world.cpp b/code/hello_world.cpp index f0d960b..29c7066 100644 --- a/code/hello_world.cpp +++ b/code/hello_world.cpp @@ -1,7 +1,11 @@ // code/hello_world.cpp #include +void printHelloWorld() { + std::cout << "Hello, World!" << std::endl; +} + int main() { - std::cout << "Hello, World!" << std::endl; - return 0; + printHelloWorld(); + return 0; } \ No newline at end of file diff --git a/code/unit_tests.cpp b/code/unit_tests.cpp index bcc1473..266d390 100644 --- a/code/unit_tests.cpp +++ b/code/unit_tests.cpp @@ -3,35 +3,31 @@ #include #include "hello_world.cpp" // Include hello_world.cpp to use printHelloWorld + +// Declare the printHelloWorld function (so we can call it in the tests) +void printHelloWorld(); + // Test fixture to capture output class HelloWorldTest : public ::testing::Test { protected: std::ostringstream captured_output; - // Override the stream buffer of std::cout to capture printed output void SetUp() override { std::streambuf* original_buffer = std::cout.rdbuf(); std::cout.rdbuf(captured_output.rdbuf()); } void TearDown() override { - std::cout.rdbuf(nullptr); // Reset std::cout to original buffer + std::cout.rdbuf(nullptr); // Reset std::cout to the original buffer } }; -// Test case: check if printHelloWorld() outputs the correct string TEST_F(HelloWorldTest, OutputsHelloWorld) { printHelloWorld(); EXPECT_EQ(captured_output.str(), "Hello, World!\n"); } -// Test case: check if printHelloWorld() does NOT output an incorrect string TEST_F(HelloWorldTest, DoesNotOutputIncorrectString) { printHelloWorld(); - EXPECT_NE(captured_output.str(), "Hello, Universe!\n"); // Deliberate incorrect string + EXPECT_NE(captured_output.str(), "Hello, Universe!\n"); } - -int main(int argc, char **argv) { - ::testing::InitGoogleTest(&argc, argv); - return RUN_ALL_TESTS(); -} \ No newline at end of file From d1af4ce37aae6850cc025206e63503ddbc33b205 Mon Sep 17 00:00:00 2001 From: Pierre Gorin <91249863+Pierre2103@users.noreply.github.com> Date: Mon, 13 Jan 2025 16:08:05 +0100 Subject: [PATCH 09/15] Add Templates for Issues and PR --- .github/ISSUE_TEMPLATE/bug_report.yml | 84 +++++++++++++++++ .github/ISSUE_TEMPLATE/typo_report.yml | 90 +++++++++++++++++++ .../merge_pull_request.yml | 61 +++++++++++++ 3 files changed, 235 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml create mode 100644 .github/ISSUE_TEMPLATE/typo_report.yml create mode 100644 .github/PULL_REQUEST_TEMPLATE/merge_pull_request.yml diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 0000000..57ccd78 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,84 @@ +name: Bug Report +description: Report a bug error in the code. +title: "๐Ÿž [Bug]: " +labels: ["bug", "error"] +projects: ["algosup/2024-2025-project-3-quickest-path-team-7"] +assignees: + - Pierre2103 + - HiNett +body: + - type: markdown + attributes: + value: | + ๐Ÿšจ **Oops! There's a bug in the code.** + Thank you for taking the time to report it. Please provide as much detail as possible so we can fix the issue quickly. ๐Ÿ› ๏ธ + - type: input + id: date + attributes: + label: ๐Ÿ“… Bug Report Date + description: Specify the date when the bug was reported. + placeholder: "YYYY-MM-DD" + validations: + required: true + - type: textarea + id: description + attributes: + label: ๐Ÿž Bug Description + description: What happened? What did you expect to happen? + placeholder: Provide a clear and concise description of the problem. + value: "A bug occurred!" + validations: + required: true + - type: textarea + id: steps + attributes: + label: ๐Ÿ”„ Steps to Reproduce + description: Provide the steps to reproduce the issue. + placeholder: e.g., "1. Do this. 2. Do that. 3. See the error." + validations: + required: true + - type: textarea + id: logs + attributes: + label: ๐Ÿ“œ Relevant Log Output + description: Paste any relevant log output. This will be formatted as code. + render: shell + - type: dropdown + id: environment + attributes: + label: ๐Ÿ–ฅ๏ธ Environment + description: Provide details about your environment. + options: + - Windows + - macOS + - Linux + - Other + validations: + required: true + - type: dropdown + id: version + attributes: + label: ๐Ÿ”ข Version + description: Select the version where the bug occurred. + options: + - v0.0.3 + - v0.0.2 + - v0.0.1 + validations: + required: true + - type: input + id: branch + attributes: + label: ๐ŸŒฟ Branch + description: Enter the branch where the bug occurred. + placeholder: Enter the branch name. + validations: + required: true + - type: textarea + id: additional-info + attributes: + label: โ„น๏ธ Additional Information + description: Add any other details or context that could help us resolve the issue. + placeholder: Provide additional details here. + validations: + required: false diff --git a/.github/ISSUE_TEMPLATE/typo_report.yml b/.github/ISSUE_TEMPLATE/typo_report.yml new file mode 100644 index 0000000..0d534cb --- /dev/null +++ b/.github/ISSUE_TEMPLATE/typo_report.yml @@ -0,0 +1,90 @@ +name: Typography Report +description: Report a typography error in project documents. +title: "โœ๏ธ [Typography]: " +labels: ["documentation", "typography"] +projects: ["algosup/2024-2025-project-3-quickest-path-team-7"] +assignees: + - Pierre2103 + - HiNett +body: + - type: markdown + attributes: + value: | + ๐Ÿ“ **Thank you for reporting a typography issue!** + Clear and detailed reports help us maintain high-quality project documentation. Please fill in the form below. + - type: input + id: date + attributes: + label: ๐Ÿ“… Report Date + description: Specify the date when this issue was reported. + placeholder: "YYYY-MM-DD" + validations: + required: true + - type: dropdown + id: document-type + attributes: + label: ๐Ÿ“„ Document Type + description: Which document contains the typo? + options: + - Functional Specification + - Technical Specification + - Test Plan + - User Manual + - Other + validations: + required: true + - type: input + id: document-type-other + attributes: + label: ๐Ÿ†• Other Document Type + description: If "Other," please specify the document type. + placeholder: Enter the document type. + validations: + required: false + - type: dropdown + id: document-author + attributes: + label: โœ๏ธ Document Author + description: Who wrote the document? + options: + - Elone DELILLE + - Abderrazaq MAKRAN + - Guillaume DERAMCHI + - Pierre GORIN + - Benoรฎt DE KEYN + - Axel DAVID + - Tino GABET + validations: + required: true + - type: textarea + id: typo-location + attributes: + label: ๐Ÿ“Œ Typo Location + description: Where exactly is the typo? (Line, section, or paragraph) + placeholder: Provide precise details. + validations: + required: true + - type: textarea + id: error + attributes: + label: โŒ Error Description + description: What is the typo? + placeholder: Describe the error. + validations: + required: true + - type: textarea + id: correction + attributes: + label: โœ… Suggested Correction + description: What is the suggested correction? + placeholder: Provide the corrected text. + validations: + required: true + - type: textarea + id: additional-info + attributes: + label: โ„น๏ธ Additional Information + description: Add any additional details or context that might help us address the issue. + placeholder: Additional details here. + validations: + required: false diff --git a/.github/PULL_REQUEST_TEMPLATE/merge_pull_request.yml b/.github/PULL_REQUEST_TEMPLATE/merge_pull_request.yml new file mode 100644 index 0000000..40f3f47 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE/merge_pull_request.yml @@ -0,0 +1,61 @@ +name: Merge Branches +description: Propose merging changes from one branch into another. +title: "๐Ÿ”€ Merge [source_branch] into [target_branch]" +labels: ["merge"] +projects: ["algosup/2024-2025-project-3-quickest-path-team-7"] +assignees: + - Pierre2103 + - HiNett +body: + - type: markdown + attributes: + value: | + ๐Ÿ”€ **Thank you for initiating a merge!** + Merging branches is a critical step in ensuring the codebase stays clean and functional. Please provide the necessary details below. + โš ๏ธ **Remember:** Ensure all tests pass and conflicts are resolved before proceeding. + - type: input + id: date + attributes: + label: ๐Ÿ“… Merge Date + description: Specify the date when this merge is being proposed. + placeholder: "YYYY-MM-DD" + validations: + required: true + - type: textarea + id: merge-purpose + attributes: + label: ๐Ÿ“ Merge Purpose + description: What is the purpose of this merge? Is it to finalize a feature, resolve a conflict, or integrate updates? + placeholder: "Explain why this merge is necessary." + validations: + required: true + - type: textarea + id: branch-changes + attributes: + label: ๐Ÿ”„ Branch Changes + description: Summarize the key changes introduced in the branch being merged. + placeholder: e.g., "1. Added X. 2. Updated Y. 3. Fixed Z." + validations: + required: true + - type: textarea + id: merge-risks + attributes: + label: โš ๏ธ Potential Merge Risks + description: Identify any risks, such as conflicts or regressions, that might arise from this merge. + placeholder: e.g., "Risk of conflicts in file A, regression in feature B." + validations: + required: false + - type: checkboxes + id: merge-checklist + attributes: + label: โœ… Merge Checklist + description: Verify that the following steps are completed before proceeding with the merge. + options: + - label: ๐ŸŸข Code conflicts have been resolved + required: true + - label: ๐Ÿ‘€ Code was reviewed and approved by peers + required: true + - label: โœ… All tests pass without errors + required: true + - label: ๐Ÿ“š Documentation is updated, if applicable + required: false \ No newline at end of file From 2e0f41e1e102e45eeb1512e26a56c78fc3a94a15 Mon Sep 17 00:00:00 2001 From: Pierre Gorin <91249863+Pierre2103@users.noreply.github.com> Date: Mon, 13 Jan 2025 16:17:43 +0100 Subject: [PATCH 10/15] modify Templates --- .github/ISSUE_TEMPLATE/config.yml | 15 +++++ .github/PULL_REQUEST_TEMPLATE.md | 42 +++++++++++++ .../merge_pull_request.yml | 61 ------------------- 3 files changed, 57 insertions(+), 61 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/PULL_REQUEST_TEMPLATE/merge_pull_request.yml diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..b496682 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,15 @@ +blank_issues_enabled: false +contact_links: + - name: Need help or have questions? + url: https://google.com/ + about: If you're unsure how to proceed, reach out to us here. + +issue_template: + - name: Typography Report + title: "[Typography]: " + about: "Report a typography error in project documents." + labels: ["documentation", "typography"] + - name: Bug Report + title: "[Bug]: " + about: "Report a bug error in the code." + labels: ["bug", "error"] diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..410f656 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,42 @@ +# ๐Ÿ”€ Merge Branches + +## ๐Ÿ“… Merge Date +Specify the date when this merge is being proposed: +**Example:** YYYY-MM-DD + +--- + +## ๐Ÿ“ Merge Purpose +What is the purpose of this merge? +- Is it to finalize a feature, resolve a conflict, or integrate updates? +- **Example:** "This merge integrates feature X into the main branch to enable Y functionality." + +--- + +## ๐Ÿ”„ Branch Changes +Summarize the key changes introduced in the branch being merged: +- **Example:** + 1. Added feature A. + 2. Updated component B. + 3. Fixed bug C. + +--- + +## โš ๏ธ Potential Merge Risks +Identify any risks, such as conflicts or regressions, that might arise from this merge: +- **Example:** "Risk of conflicts in file X, regression in feature Y." + +--- + +## โœ… Merge Checklist +Before proceeding with the merge, ensure the following steps are completed: +- [ ] ๐ŸŸข **Code conflicts have been resolved.** +- [ ] ๐Ÿ‘€ **Code was reviewed and approved by peers.** +- [ ] โœ… **All tests pass without errors.** +- [ ] ๐Ÿ“š **Documentation is updated, if applicable.** + +--- + +## โ„น๏ธ Additional Information +Include any additional notes or follow-up actions needed after the merge: +- **Example:** "Deploy changes to production and notify stakeholders." diff --git a/.github/PULL_REQUEST_TEMPLATE/merge_pull_request.yml b/.github/PULL_REQUEST_TEMPLATE/merge_pull_request.yml deleted file mode 100644 index 40f3f47..0000000 --- a/.github/PULL_REQUEST_TEMPLATE/merge_pull_request.yml +++ /dev/null @@ -1,61 +0,0 @@ -name: Merge Branches -description: Propose merging changes from one branch into another. -title: "๐Ÿ”€ Merge [source_branch] into [target_branch]" -labels: ["merge"] -projects: ["algosup/2024-2025-project-3-quickest-path-team-7"] -assignees: - - Pierre2103 - - HiNett -body: - - type: markdown - attributes: - value: | - ๐Ÿ”€ **Thank you for initiating a merge!** - Merging branches is a critical step in ensuring the codebase stays clean and functional. Please provide the necessary details below. - โš ๏ธ **Remember:** Ensure all tests pass and conflicts are resolved before proceeding. - - type: input - id: date - attributes: - label: ๐Ÿ“… Merge Date - description: Specify the date when this merge is being proposed. - placeholder: "YYYY-MM-DD" - validations: - required: true - - type: textarea - id: merge-purpose - attributes: - label: ๐Ÿ“ Merge Purpose - description: What is the purpose of this merge? Is it to finalize a feature, resolve a conflict, or integrate updates? - placeholder: "Explain why this merge is necessary." - validations: - required: true - - type: textarea - id: branch-changes - attributes: - label: ๐Ÿ”„ Branch Changes - description: Summarize the key changes introduced in the branch being merged. - placeholder: e.g., "1. Added X. 2. Updated Y. 3. Fixed Z." - validations: - required: true - - type: textarea - id: merge-risks - attributes: - label: โš ๏ธ Potential Merge Risks - description: Identify any risks, such as conflicts or regressions, that might arise from this merge. - placeholder: e.g., "Risk of conflicts in file A, regression in feature B." - validations: - required: false - - type: checkboxes - id: merge-checklist - attributes: - label: โœ… Merge Checklist - description: Verify that the following steps are completed before proceeding with the merge. - options: - - label: ๐ŸŸข Code conflicts have been resolved - required: true - - label: ๐Ÿ‘€ Code was reviewed and approved by peers - required: true - - label: โœ… All tests pass without errors - required: true - - label: ๐Ÿ“š Documentation is updated, if applicable - required: false \ No newline at end of file From c3a65e48f27a119c972304aa4c9e726e0fe09bd8 Mon Sep 17 00:00:00 2001 From: Pierre Gorin <91249863+Pierre2103@users.noreply.github.com> Date: Mon, 13 Jan 2025 16:28:54 +0100 Subject: [PATCH 11/15] fix templates --- .../{typo_report.yml => typography_report.yml} | 0 .github/PULL_REQUEST_TEMPLATE.md | 18 +++++++++--------- 2 files changed, 9 insertions(+), 9 deletions(-) rename .github/ISSUE_TEMPLATE/{typo_report.yml => typography_report.yml} (100%) diff --git a/.github/ISSUE_TEMPLATE/typo_report.yml b/.github/ISSUE_TEMPLATE/typography_report.yml similarity index 100% rename from .github/ISSUE_TEMPLATE/typo_report.yml rename to .github/ISSUE_TEMPLATE/typography_report.yml diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 410f656..e34f032 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -2,41 +2,41 @@ ## ๐Ÿ“… Merge Date Specify the date when this merge is being proposed: -**Example:** YYYY-MM-DD + --- ## ๐Ÿ“ Merge Purpose What is the purpose of this merge? -- Is it to finalize a feature, resolve a conflict, or integrate updates? -- **Example:** "This merge integrates feature X into the main branch to enable Y functionality." + --- ## ๐Ÿ”„ Branch Changes Summarize the key changes introduced in the branch being merged: -- **Example:** - 1. Added feature A. - 2. Updated component B. - 3. Fixed bug C. + --- ## โš ๏ธ Potential Merge Risks Identify any risks, such as conflicts or regressions, that might arise from this merge: -- **Example:** "Risk of conflicts in file X, regression in feature Y." + --- ## โœ… Merge Checklist Before proceeding with the merge, ensure the following steps are completed: + - [ ] ๐ŸŸข **Code conflicts have been resolved.** - [ ] ๐Ÿ‘€ **Code was reviewed and approved by peers.** - [ ] โœ… **All tests pass without errors.** - [ ] ๐Ÿ“š **Documentation is updated, if applicable.** + + --- ## โ„น๏ธ Additional Information Include any additional notes or follow-up actions needed after the merge: -- **Example:** "Deploy changes to production and notify stakeholders." + + From 1a6a982dc4b8192e2f2463fa6c432f456026b7a7 Mon Sep 17 00:00:00 2001 From: Pierre Gorin <91249863+Pierre2103@users.noreply.github.com> Date: Mon, 13 Jan 2025 16:35:20 +0100 Subject: [PATCH 12/15] fix templates 2 --- .github/ISSUE_TEMPLATE/config.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index b496682..6880787 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -6,10 +6,10 @@ contact_links: issue_template: - name: Typography Report - title: "[Typography]: " + title: "โœ๏ธ [Typography]: " about: "Report a typography error in project documents." labels: ["documentation", "typography"] - name: Bug Report - title: "[Bug]: " + title: "๐Ÿž [Bug]: " about: "Report a bug error in the code." labels: ["bug", "error"] From fcc918dd3bd0d0b934e2f7134e9951f4a9d2bc59 Mon Sep 17 00:00:00 2001 From: Pierre Gorin <91249863+Pierre2103@users.noreply.github.com> Date: Mon, 13 Jan 2025 16:39:03 +0100 Subject: [PATCH 13/15] Update config.yml --- .github/ISSUE_TEMPLATE/config.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 6880787..8e082f1 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -5,10 +5,6 @@ contact_links: about: If you're unsure how to proceed, reach out to us here. issue_template: - - name: Typography Report - title: "โœ๏ธ [Typography]: " - about: "Report a typography error in project documents." - labels: ["documentation", "typography"] - name: Bug Report title: "๐Ÿž [Bug]: " about: "Report a bug error in the code." From c3ec5c93d16c007b188c60d7330efd352791e00d Mon Sep 17 00:00:00 2001 From: Pierre Gorin <91249863+Pierre2103@users.noreply.github.com> Date: Mon, 13 Jan 2025 16:54:10 +0100 Subject: [PATCH 14/15] fix templates 3 --- .github/ISSUE_TEMPLATE/config.yml | 4 +- .github/ISSUE_TEMPLATE/typography_report.yml | 90 -------------------- 2 files changed, 2 insertions(+), 92 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/typography_report.yml diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 8e082f1..97bf18f 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -6,6 +6,6 @@ contact_links: issue_template: - name: Bug Report - title: "๐Ÿž [Bug]: " + title: "๐Ÿž [Bug]: " about: "Report a bug error in the code." - labels: ["bug", "error"] + labels: ["bug", "error"] \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/typography_report.yml b/.github/ISSUE_TEMPLATE/typography_report.yml deleted file mode 100644 index 0d534cb..0000000 --- a/.github/ISSUE_TEMPLATE/typography_report.yml +++ /dev/null @@ -1,90 +0,0 @@ -name: Typography Report -description: Report a typography error in project documents. -title: "โœ๏ธ [Typography]: " -labels: ["documentation", "typography"] -projects: ["algosup/2024-2025-project-3-quickest-path-team-7"] -assignees: - - Pierre2103 - - HiNett -body: - - type: markdown - attributes: - value: | - ๐Ÿ“ **Thank you for reporting a typography issue!** - Clear and detailed reports help us maintain high-quality project documentation. Please fill in the form below. - - type: input - id: date - attributes: - label: ๐Ÿ“… Report Date - description: Specify the date when this issue was reported. - placeholder: "YYYY-MM-DD" - validations: - required: true - - type: dropdown - id: document-type - attributes: - label: ๐Ÿ“„ Document Type - description: Which document contains the typo? - options: - - Functional Specification - - Technical Specification - - Test Plan - - User Manual - - Other - validations: - required: true - - type: input - id: document-type-other - attributes: - label: ๐Ÿ†• Other Document Type - description: If "Other," please specify the document type. - placeholder: Enter the document type. - validations: - required: false - - type: dropdown - id: document-author - attributes: - label: โœ๏ธ Document Author - description: Who wrote the document? - options: - - Elone DELILLE - - Abderrazaq MAKRAN - - Guillaume DERAMCHI - - Pierre GORIN - - Benoรฎt DE KEYN - - Axel DAVID - - Tino GABET - validations: - required: true - - type: textarea - id: typo-location - attributes: - label: ๐Ÿ“Œ Typo Location - description: Where exactly is the typo? (Line, section, or paragraph) - placeholder: Provide precise details. - validations: - required: true - - type: textarea - id: error - attributes: - label: โŒ Error Description - description: What is the typo? - placeholder: Describe the error. - validations: - required: true - - type: textarea - id: correction - attributes: - label: โœ… Suggested Correction - description: What is the suggested correction? - placeholder: Provide the corrected text. - validations: - required: true - - type: textarea - id: additional-info - attributes: - label: โ„น๏ธ Additional Information - description: Add any additional details or context that might help us address the issue. - placeholder: Additional details here. - validations: - required: false From c0a143388b87295bba94fecd6b069da71aa5d620 Mon Sep 17 00:00:00 2001 From: Pierre Gorin <91249863+Pierre2103@users.noreply.github.com> Date: Mon, 13 Jan 2025 17:00:21 +0100 Subject: [PATCH 15/15] fix templates 3 --- .github/ISSUE_TEMPLATE/config.yml | 8 +- .github/ISSUE_TEMPLATE/typography_report.yml | 90 ++++++++++++++++++++ 2 files changed, 96 insertions(+), 2 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/typography_report.yml diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 97bf18f..6880787 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -5,7 +5,11 @@ contact_links: about: If you're unsure how to proceed, reach out to us here. issue_template: + - name: Typography Report + title: "โœ๏ธ [Typography]: " + about: "Report a typography error in project documents." + labels: ["documentation", "typography"] - name: Bug Report - title: "๐Ÿž [Bug]: " + title: "๐Ÿž [Bug]: " about: "Report a bug error in the code." - labels: ["bug", "error"] \ No newline at end of file + labels: ["bug", "error"] diff --git a/.github/ISSUE_TEMPLATE/typography_report.yml b/.github/ISSUE_TEMPLATE/typography_report.yml new file mode 100644 index 0000000..0d534cb --- /dev/null +++ b/.github/ISSUE_TEMPLATE/typography_report.yml @@ -0,0 +1,90 @@ +name: Typography Report +description: Report a typography error in project documents. +title: "โœ๏ธ [Typography]: " +labels: ["documentation", "typography"] +projects: ["algosup/2024-2025-project-3-quickest-path-team-7"] +assignees: + - Pierre2103 + - HiNett +body: + - type: markdown + attributes: + value: | + ๐Ÿ“ **Thank you for reporting a typography issue!** + Clear and detailed reports help us maintain high-quality project documentation. Please fill in the form below. + - type: input + id: date + attributes: + label: ๐Ÿ“… Report Date + description: Specify the date when this issue was reported. + placeholder: "YYYY-MM-DD" + validations: + required: true + - type: dropdown + id: document-type + attributes: + label: ๐Ÿ“„ Document Type + description: Which document contains the typo? + options: + - Functional Specification + - Technical Specification + - Test Plan + - User Manual + - Other + validations: + required: true + - type: input + id: document-type-other + attributes: + label: ๐Ÿ†• Other Document Type + description: If "Other," please specify the document type. + placeholder: Enter the document type. + validations: + required: false + - type: dropdown + id: document-author + attributes: + label: โœ๏ธ Document Author + description: Who wrote the document? + options: + - Elone DELILLE + - Abderrazaq MAKRAN + - Guillaume DERAMCHI + - Pierre GORIN + - Benoรฎt DE KEYN + - Axel DAVID + - Tino GABET + validations: + required: true + - type: textarea + id: typo-location + attributes: + label: ๐Ÿ“Œ Typo Location + description: Where exactly is the typo? (Line, section, or paragraph) + placeholder: Provide precise details. + validations: + required: true + - type: textarea + id: error + attributes: + label: โŒ Error Description + description: What is the typo? + placeholder: Describe the error. + validations: + required: true + - type: textarea + id: correction + attributes: + label: โœ… Suggested Correction + description: What is the suggested correction? + placeholder: Provide the corrected text. + validations: + required: true + - type: textarea + id: additional-info + attributes: + label: โ„น๏ธ Additional Information + description: Add any additional details or context that might help us address the issue. + placeholder: Additional details here. + validations: + required: false