{"id":14975949,"url":"https://github.com/basemax/languagelearninggraphqlphp","last_synced_at":"2026-03-04T12:32:00.083Z","repository":{"id":186412186,"uuid":"668291525","full_name":"BaseMax/LanguageLearningGraphQLPHP","owner":"BaseMax","description":"This project is a Language Learning App that provides a GraphQL API for language courses, vocabulary exercises, and language proficiency assessments. The API is developed in PHP 8 and allows users to access a wide range of language learning resources.","archived":false,"fork":false,"pushed_at":"2023-08-05T22:37:03.000Z","size":52,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-23T00:38:32.233Z","etag":null,"topics":["api-language-learning","graphql","graphql-api","graphql-client","graphql-php","graphql-schema","graphql-server","language-learning","language-learning-api","language-learning-book","language-learning-management-system","language-learning-tool","php","php-graphql","php8"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BaseMax.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}},"created_at":"2023-07-19T13:13:08.000Z","updated_at":"2024-03-28T22:49:50.000Z","dependencies_parsed_at":null,"dependency_job_id":"3478b879-7649-4e0c-b4f0-b693be926d72","html_url":"https://github.com/BaseMax/LanguageLearningGraphQLPHP","commit_stats":null,"previous_names":["basemax/languagelearninggraphqlphp"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BaseMax%2FLanguageLearningGraphQLPHP","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BaseMax%2FLanguageLearningGraphQLPHP/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BaseMax%2FLanguageLearningGraphQLPHP/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BaseMax%2FLanguageLearningGraphQLPHP/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BaseMax","download_url":"https://codeload.github.com/BaseMax/LanguageLearningGraphQLPHP/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241180855,"owners_count":19923306,"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-language-learning","graphql","graphql-api","graphql-client","graphql-php","graphql-schema","graphql-server","language-learning","language-learning-api","language-learning-book","language-learning-management-system","language-learning-tool","php","php-graphql","php8"],"created_at":"2024-09-24T13:52:55.736Z","updated_at":"2025-11-24T12:01:17.326Z","avatar_url":"https://github.com/BaseMax.png","language":"PHP","readme":"# Language Learning App - GraphQL API PHP\n\nThis project is a Language Learning App that provides a GraphQL API for language courses, vocabulary exercises, and language proficiency assessments. The API is developed in PHP 8 and allows users to access a wide range of language learning resources.\n\n## Prerequisites\n\nBefore running the Language Learning App, ensure you have the following installed:\n\n- PHP 8\n- Composer (Dependency Manager for PHP)\n- MySQL or any compatible database server\n\n## Installation\n\n### Clone the repository:\n\n```bash\ngit clone https://github.com/BaseMax/LanguageLearningGraphQLPHP.git\ncd LanguageLearningGraphQLPHP\n```\n\n### Install dependencies:\n\n```bash\ncomposer install\n```\n\n### Configure the environment:\n\nCopy the `.env.example` file to `.env` and set the required environment variables such as database credentials and Redis configuration.\n\n### Database\n\nRun database migrations to set up the required tables:\n\n```bash\nphp migrate.php\n```\n\nStart the development server:\n\n```bash\ncd public/\nphp -S localhost:8000 index.php\n```\n\n## GraphQL Schema\n\nThe Language Learning App API provides the following queries and mutations:\n\n### Queries\n\n- `courses: [Course!]!`: Get a list of available language courses.\n- `course(id: ID!): Course`: Get a specific language course by its ID.\n- `exercises(courseId: ID!): [Exercise!]!`: Get vocabulary exercises for a specific language course.\n- `exercise(id: ID!): Exercise`: Get a specific vocabulary exercise by its ID.\n- `assessments: [Assessment!]!`: Get language proficiency assessments.\n- `assessment(id: ID!): Assessment`: Get a specific language proficiency assessment by its ID.\n\n### Mutations\n\n- `enroll(courseId: ID!): Course`: Enroll in a language course.\n- `submitExercise(exerciseId: ID!, answer: String!): Exercise`: Submit an answer for a vocabulary exercise.\n- `submitAssessment(assessmentId: ID!, answers: [AssessmentAnswerInput!]!): AssessmentResult`: Submit answers for a language proficiency assessment.\n\n## Authentication\n\nTo access certain mutations, such as enrolling in a course or submitting exercises and assessments, users need to authenticate their requests. Please include an authentication token in the request headers using the following format:\n\n```makefile\nAuthorization: Bearer YOUR_AUTH_TOKEN\n```\n\nThe API uses JWT (JSON Web Tokens) for authentication. To obtain an authentication token, you can use the login mutation, passing your username and password as input, and it will return a token that you can use for subsequent requests.\n\n## Error Handling\n\nThe API handles errors using GraphQL's built-in error handling mechanisms. If an error occurs, the API will provide meaningful error messages with relevant details.\n\n## Caching\n\nTo improve performance, the API utilizes Redis caching for certain queries and data. Cached data will be served when available, reducing the load on the database.\n\n## Documentation\n\nFor more information on the API's schema, queries, and mutations, you can access the GraphQL documentation tool at `http://localhost:8000/graphql-playground` after starting the development server.\n\n## Contribution\n\nContributions to the Language Learning App project are welcome. If you find any issues or have ideas for improvements, please feel free to create a pull request or submit an issue in the repository.\n\n## License\n\nThis project is licensed under the GPL-3.0 License.\n\nEnjoy building your Language Learning App with the GraphQL API in PHP 8!\n\nCopyright 2023, Max Base, Ali Ahmadi\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbasemax%2Flanguagelearninggraphqlphp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbasemax%2Flanguagelearninggraphqlphp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbasemax%2Flanguagelearninggraphqlphp/lists"}