{"id":25625132,"url":"https://github.com/kemalkochekov/jwt-backend-application","last_synced_at":"2026-04-09T18:50:19.756Z","repository":{"id":209934152,"uuid":"723681320","full_name":"kemalkochekov/JWT-Backend-Application","owner":"kemalkochekov","description":"Backend Application with JWT-based Authentication.","archived":false,"fork":false,"pushed_at":"2023-12-18T09:29:23.000Z","size":48,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2023-12-19T05:13:56.991Z","etag":null,"topics":["api","backend-architecture","backend-service","docker","docker-compose","fiber","go","jwt-authentication","postgres","postman","redis"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kemalkochekov.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2023-11-26T12:55:41.000Z","updated_at":"2023-12-06T07:48:39.000Z","dependencies_parsed_at":"2023-12-17T01:23:42.034Z","dependency_job_id":null,"html_url":"https://github.com/kemalkochekov/JWT-Backend-Application","commit_stats":null,"previous_names":["kemalkochekov/fiberjwtauthenticator","kemalkochekov/jwt-backend-development-app","kemalkochekov/jwt-backend-application"],"tags_count":0,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kemalkochekov%2FJWT-Backend-Application","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kemalkochekov%2FJWT-Backend-Application/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kemalkochekov%2FJWT-Backend-Application/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kemalkochekov%2FJWT-Backend-Application/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kemalkochekov","download_url":"https://codeload.github.com/kemalkochekov/JWT-Backend-Application/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240183767,"owners_count":19761440,"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","backend-architecture","backend-service","docker","docker-compose","fiber","go","jwt-authentication","postgres","postman","redis"],"created_at":"2025-02-22T14:08:50.751Z","updated_at":"2026-04-09T18:50:14.708Z","avatar_url":"https://github.com/kemalkochekov.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# JWT Backend Application\nThis is a backend development app that utilizes JSON Web Tokens (JWT) for authentication. It provides an API that allows clients to authenticate and access protected resources.\n\n## Table of Contents\n- [Prerequisites](#prerequisites)\n- [Installation](#installation)\n- [Usage](#usage)\n- [API Endpoints](#api-endpoints)\n- [Architecture Layers](#architecture-layers)\n  - [API Flow without JWT Authentication Middleware](#api-flow-without-jwt-authentication-middleware)\n  - [API Flow with JWT Authentication Middleware](#api-flow-with-jwt-authentication-middleware)\n- [Linting and Code Quality](#linting-and-code-quality)\n  - [Linting Installation](#linting-installation)\n  - [Linting Usage](#linting-usage)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Prerequisites\n\nBefore running this application, ensure that you have the following prerequisites installed:\n\n- Go: [Install Go](https://go.dev/doc/install/)\n- Docker: [Install Docker](https://docs.docker.com/get-docker/)\n- Docker Compose: [Install Docker Compose](https://docs.docker.com/compose/install/)\n\n## Installation\n\n1. Clone this repository\n  ```bash\n    git clone https://github.com/kemalkochekov/JWT-Backend-Application.git\n  ```\n2. Navigate to the project directory:\n  ```\n    cd JWT-Backend-Application\n  ```\n3. Build the Docker image:\n  ```\n    docker-compose build\n  ```\n\n## Usage\n1. Start the Docker containers:\n  ```\n    docker-compose up\n  ```\n2. The application will be accessible at:\n  ```\n    localhost:8080\n  ```\n\n## API Endpoints\nThe following API endpoints are available:\n- POST http://localhost:8080/users/signup\n- POST http://localhost:8080/users/login\n- GET http://localhost:8080/logout\n- GET http://localhost:8080/users\n- GET http://localhost:8080/admin\n\nFor detailed API documentation, including examples, request/response structures, and authentication details, please refer to the\n\n\u003ca href=\"https://documenter.getpostman.com/view/31073105/2s9YeMzng6\" target=\"_blank\"\u003e\n    \u003cimg alt=\"View API Doc Button\" src=\"https://github.com/kemalkochekov/JWT-Backend-Development-App/assets/85355663/0c231cef-ee76-4cdf-bc41-e900845da493\" width=\"200\" height=\"60\"/\u003e\n\u003c/a\u003e\n\n## Architecture Layers\nI've designed a structured Go (Golang) backend architecture using Fiber, PostgreSQL, Redis, JWT auth middleware, and Docker, ensuring a robust and organized system.\n\n![JWTbackend](https://github.com/kemalkochekov/JWT-Backend-Development-App/assets/85355663/e934493d-5568-401d-9810-0c71ffde3c43)\n\n### API Flow without JWT Authentication Middleware\n![Untitled-2023-11-28-1052](https://github.com/kemalkochekov/JWT-Backend-Development-App/assets/85355663/53ff225a-1c5c-4d4d-b06c-f21c96c968d3)\n\n### API Flow with JWT Authentication Middleware\n![with](https://github.com/kemalkochekov/JWT-Backend-Development-App/assets/85355663/bbfa0665-2c7b-45d9-aae1-d12bb87d783b)\n\n## Linting and Code Quality\n\nThis project maintains code quality using `golangci-lint`, a fast and customizable Go linter. `golangci-lint` checks for various issues, ensures code consistency, and enforces best practices, helping maintain a clean and standardized codebase.\n\n### Linting Installation\n\nTo install `golangci-lint`, you can use `brew`:\n\n```bash\n  brew install golangci-lint\n```\n\n### Linting Usage\n1. Configuration: \n\nAfter installing golangci-lint, create or use a personal configuration file (e.g., .golangci.yml) to define specific linting rules and settings:\n```bash\n  golangci-lint run --config=.golangci.yml\n```\nThis command initializes linting based on the specified configuration file.\n\n2. Run the linter:\n\nOnce configuration is completed, you can execute the following command at the root directory of your project to run golangci-lint:\n\n```bash\n  golangci-lint run\n```\nThis command performs linting checks on your entire project and provides a detailed report highlighting any issues or violations found.\n\n3. Customize Linting Rules:\n\nYou can customize the linting rules by modifying the `.golangci.yml` file.\n\nFor more information on using golangci-lint, refer to the golangci-lint documentation.\n\n## Contributing\nContributions are welcome! If you find any issues or have suggestions for improvements, please open an issue or submit a pull request. Ensure that you follow the existing code style and conventions.\n\n## License\nThis project is licensed under the [MIT License](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkemalkochekov%2Fjwt-backend-application","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkemalkochekov%2Fjwt-backend-application","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkemalkochekov%2Fjwt-backend-application/lists"}