{"id":15138125,"url":"https://github.com/akshitvadodariya1201/project-management-api","last_synced_at":"2026-01-06T12:04:34.771Z","repository":{"id":249972145,"uuid":"833013410","full_name":"AkshitVadodariya1201/Project-Management-API","owner":"AkshitVadodariya1201","description":"The Project Management API is a comprehensive Rust-based web application designed to streamline and enhance the management of projects.","archived":false,"fork":false,"pushed_at":"2024-07-24T10:16:54.000Z","size":19,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-08T16:37:51.766Z","etag":null,"topics":["api","asyn","async-graphql","cargo","graphql","integration-testing","json","rocket","rust","testing","tokio","unittest"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AkshitVadodariya1201.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-24T07:27:01.000Z","updated_at":"2024-07-24T10:17:53.000Z","dependencies_parsed_at":"2024-07-24T13:02:06.222Z","dependency_job_id":"eb562545-09f7-4c36-a33f-97eebeba8fbb","html_url":"https://github.com/AkshitVadodariya1201/Project-Management-API","commit_stats":null,"previous_names":["akshitvadodariya1201/project-management-api"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AkshitVadodariya1201%2FProject-Management-API","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AkshitVadodariya1201%2FProject-Management-API/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AkshitVadodariya1201%2FProject-Management-API/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AkshitVadodariya1201%2FProject-Management-API/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AkshitVadodariya1201","download_url":"https://codeload.github.com/AkshitVadodariya1201/Project-Management-API/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245550588,"owners_count":20633871,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","asyn","async-graphql","cargo","graphql","integration-testing","json","rocket","rust","testing","tokio","unittest"],"created_at":"2024-09-26T07:20:46.683Z","updated_at":"2026-01-06T12:04:29.737Z","avatar_url":"https://github.com/AkshitVadodariya1201.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Project Management API\n\nThe Project Management API is a comprehensive Rust-based web application designed to streamline and enhance the management of projects. It is built on the robust Rocket web framework, known for its speed and reliability, and utilizes Async-GraphQL, a powerful library for building GraphQL APIs in Rust. This combination offers a high-performance backend capable of handling complex project management tasks with ease.\n\n## Key Features\n\n- **GraphQL API**: Leverages Async-GraphQL to provide a flexible and efficient API for querying and mutating project data, enabling clients to request exactly what they need and nothing more.\n- **Project and Owner Management**: Supports comprehensive management capabilities for projects and their owners, allowing for the creation, update, and retrieval of project information and associated owners.\n- **Robust Data Handling**: Utilizes custom JSON handling for persisting project and owner data, ensuring data integrity and ease of access.\n- **Integration Testing**: Includes a suite of integration tests covering GraphQL mutations and queries, as well as JSON data handling, ensuring the reliability and stability of the application.\n\n## Architecture\n\nThe application is structured around the Rocket web framework and Async-GraphQL library, with the following key components:\n\n- **GraphQL Handler**: Central to the application, the GraphQL handler (`src/handler/graphql_handler.rs`) defines the schema, queries, and mutations for the GraphQL API.\n- **Data Models**: Defines the data structures for projects and owners, along with JSON serialization and deserialization logic for persistent storage (`src/config/`, `src/schema/`).\n- **Integration Tests**: Ensures the application's functionality through comprehensive integration tests, covering GraphQL operations and JSON data handling (`tests/`).\n\n## Getting Started\n\nTo get started with the Project Management API, ensure you have Rust and Cargo installed. Then, you can clone the repository and run the application using Rocket's built-in server.\n\n1. Clone the repository:\n\n   ```sh\n   git clone https://github.com/AkshitVadodariya1201/Project-Management-API.git\n   ```\n\n2. Change into the project directory:\n\n   ```sh\n   cd project-management-api\n   ```\n\n3. Run the application using Cargo:\n\n   ```sh\n   cargo run\n   ```\n\n4. Access the GraphQL playground at `http://localhost:8000` to interact with the API.\n\n## Usage\n\nThe Project Management API provides a GraphQL interface for managing projects and their owners. You can perform the following operations using the provided queries and mutations:\n\n- **Queries**:\n\n  - `projects`: Retrieve a list of all projects.\n  - `project(id: ID!)`: Retrieve a specific project by ID.\n  - `owners`: Retrieve a list of all owners.\n  - `owner(id: ID!)`: Retrieve a specific owner by ID.\n\n- **Mutations**:\n  - `createProject(input: ProjectInput!)`: Create a new project with the specified input.\n  - `updateProject(id: ID!, input: ProjectInput!)`: Update an existing project with the specified ID and input.\n  - `deleteProject(id: ID!)`: Delete a project with the specified ID.\n  - `createOwner(input: OwnerInput!)`: Create a new owner with the specified input.\n  - `updateOwner(id: ID!, input: OwnerInput!)`: Update an existing owner with the specified ID and input.\n  - `deleteOwner(id: ID!)`: Delete an owner with the specified ID.\n\nFor detailed information on the available queries and mutations, refer to the GraphQL schema in the GraphQL playground.\n\n## API Test using Hoppscotch\n\nTo test the Project Management API endpoints, you can use Hoppscotch, a popular API testing tool. Follow the steps below to set up and run the API test using Hoppscotch:\n\n1. Install Hoppscotch: \n    - Visit the Hoppscotch website at [https://hoppscotch.io/](https://hoppscotch.io/)\n    - Download and install the appropriate version for your operating system.\n\n2. Launch Hoppscotch:\n    - Open Hoppscotch on your computer.\n\n3. Import the Project Management API collection:\n    - Click on the \"Import\" button in Hoppscotch.\n    - Select the option to import from a file.\n    - Choose the collection file provided with the Project Management API repository.\n\n4. Configure the environment variables:\n    - In Hoppscotch, click on the \"Environment\" button.\n    - Add a new environment and provide the necessary variables such as the API base URL.\n\n5. Run the API test:\n    - Select the desired API request from the imported collection.\n    - Fill in the required parameters and headers.\n    - Click on the \"Send\" button to execute the request.\n    - Review the response and verify the expected results.\n\nBy following these steps, you can easily test the Project Management API using Hoppscotch and ensure the functionality and reliability of the endpoints.\n\n\n## Testing\n\nThe Project Management API includes a suite of integration tests to ensure the correctness and reliability of the application. You can run the tests using Cargo:\n\n```sh\ncargo test\n```\n\nThe tests cover GraphQL queries and mutations, as well as JSON data handling, to validate the application's functionality.\n\n## Acknowledgements\n\nThe Project Management API was developed as part of a project management course and is intended for educational purposes. It leverages the Rocket web framework and Async-GraphQL library to provide a high-performance backend for managing projects and owners.\n\nFor more information on Rocket, Async-GraphQL, and other libraries used in this project, refer to the official documentation:\n\n- [Rocket](https://rocket.rs/)\n- [Async-GraphQL](https://async-graphql.github.io/async-graphql/en/index.html)\n- [Serde JSON](https://serde.rs/)\n- [reqwest](https://docs.rs/reqwest/0.11.4/reqwest/)\n- [tokio](https://tokio.rs/)\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\nHappy coding!🦀🚀\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakshitvadodariya1201%2Fproject-management-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fakshitvadodariya1201%2Fproject-management-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakshitvadodariya1201%2Fproject-management-api/lists"}