{"id":17468779,"url":"https://github.com/yigitm/book-appointment","last_synced_at":"2025-03-03T06:31:41.253Z","repository":{"id":40348620,"uuid":"486742349","full_name":"yigitm/book-appointment","owner":"yigitm","description":"This Final Capstone Project is based on an app for booking appointments by using Rails API \u0026 React frameworks.","archived":true,"fork":false,"pushed_at":"2022-09-26T22:42:29.000Z","size":806,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"dev","last_synced_at":"2025-02-02T10:30:01.431Z","etag":null,"topics":["bcrypt","jwt-bearer-tokens","rails-api","rswag","ruby","swagger-ui"],"latest_commit_sha":null,"homepage":"https://afternoon-ravine-99760.herokuapp.com/api-docs/index.html","language":"Ruby","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/yigitm.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}},"created_at":"2022-04-28T20:41:05.000Z","updated_at":"2024-01-20T15:17:44.000Z","dependencies_parsed_at":"2023-01-17T18:46:03.720Z","dependency_job_id":null,"html_url":"https://github.com/yigitm/book-appointment","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yigitm%2Fbook-appointment","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yigitm%2Fbook-appointment/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yigitm%2Fbook-appointment/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yigitm%2Fbook-appointment/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yigitm","download_url":"https://codeload.github.com/yigitm/book-appointment/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241621868,"owners_count":19992496,"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":["bcrypt","jwt-bearer-tokens","rails-api","rswag","ruby","swagger-ui"],"created_at":"2024-10-18T15:24:13.126Z","updated_at":"2025-03-03T06:31:40.622Z","avatar_url":"https://github.com/yigitm.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"![](https://img.shields.io/badge/Microverse-blueviolet)\n\n# Rails API for Book Appoinment App\n\nThis Rails API is a simple course app with basic functionalities and consists of implementing a Ruby on Rails back-end with JWT Bearer authentication using bcrypt \u0026 JWT gems.\n\nMain functionalities are:\n\n- Sign-up/Login users with dedicated endpoints\n- Creating/Deleting courses with dedicated endpoints\n\n![App Screenshot](app/assets/api-doc-1.png)\n\nMy learning purpose based on practicing basic authentication with JWT, creating API endpoints to consume it with a separate front end and preparing an automated API documentation with rswag gem.\n\nAPI documentation is created by using rswag. Documentation use case examples for user sign-ups/logins and adding/deleting of the courses implemented by configuring Swagger-YAML.\n\n## Kanban Board\n\nKanban Board: [Link](https://github.com/yigitm/book-appointment/projects/2)\n\n![Kanban Board](https://user-images.githubusercontent.com/24368914/165861353-b4e45551-81f3-46a3-8abd-d7c3f86f23bd.png)\n\n## Live Demo\n\nReact Frontend : [Live Demo Link](https://warm-smakager-3f854a.netlify.app/)\n\nReact Frontend : [Repository Link](https://github.com/yigitm/book-appointment-frontend)\n\nRails Backend : [Live Demo Link](https://dark-flower-106.fly.dev/api-docs/index.html)\n\n![React Frontend](app/assets/app.gif)\n\n## How to use this API\n\nTo use all features in your browser by a dedicated API documentation page with a graphical user interface;\n\n- Clone this repository by following these [steps](#Getting-Started).\n\n- Then go to this [link](http://localhost:3000/api-docs).\n\n- You should see the below page in your browser:\n\n![App Screenshot](app/assets/api-doc-1.png)\n\n\u003e Before requesting any other option, you must create a user with this sign-up endpoint. After clicking to 'Try it Out' button, you can type your username \u0026 password right between quote signs and press 'Execute'.\n\n![App Screenshot](app/assets/api-doc-create-user.png)\n\n\u003e After creating a user; you will receive a bearer authentication token as a response of this request if your user credentials are correct \u0026 valid.\n\n\u003e The response should be like this; if your user is successfully created.\n\n![App Screenshot](app/assets/api-doc-token.png)\n\n\u003e To learn more about bearer authentication; please check this [ link ](https://swagger.io/docs/specification/authentication/bearer-authentication/).\n\n\u003e Once you got your token, you need to authenticate your by adding it to your requests' header. Copy this token and click to below authenticate button.\n\n![App Screenshot](app/assets/api-doc-3.png)\n\n\u003e Paste your token to below text box. Press 'Authorize' and close the pop-up menu.\n\n![App Screenshot](app/assets/api-doc-4.png)\n\n\u003e These are the all endpoints that you can consume after adding your token in your header for each GET/POST/DELETE request.\n\n![App Screenshot](app/assets/api-doc-2.png)\n\n## Built With\n\n- Ruby\n- Rails\n- JWT\n- Bcrpyt\n- Rspec\n- Rswag\n- YAML\n- Rubocop\n\n## Getting Started\n\nTo get a local copy up and running follow these simple example steps.\n\n### Prerequisites\n\nRuby should be installed in your local machine. Please check this [article](https://www.theodinproject.com/lessons/ruby-installing-ruby) how to install/setup Ruby for different operating systems.\n\nRuby on Rails should be installed in your local machine. Please check this [article](https://www.theodinproject.com/lessons/ruby-on-rails-installing-rails) how to install/setup Ruby for different operating systems.\n\n### Setup\n\nTo get a local copy of the repository please run the following commands on your terminal.\n\nIf you are not familiar to use terminal, please check this [article](https://www.theodinproject.com/courses/web-development-101/lessons/command-line-basics-web-development-101)\n\n### Install\n\nOpen your terminal \u0026 go to your desktop.\n\n```\ncd your_desktop\n```\n\nRun below commands.\n\n```\ngit clone https://github.com/yigitm/book-appointment.git\n```\n\n### Usage\n\nGo to the app folder.\n\n```\ncd book-appointment\n```\n\nRun below command to install packages that app is depended to run.\n\n```\nbundle install\n```\n\nRun below to set database.\n\n```\nrails db:create\nrails db:migrate\n```\n\nRun the local Rails server in your default browser with below command.\n\n```\nrails s\n```\n\n### Test\n\nRSpec is used for testing. Run below command to run all tests.\n\n```\nrspec\n```\n\n## Author\n\n👤 **Yigit Mersin**\n\n- GitHub: [@ygtmrsn](https://github.com/ygtmrsn)\n- Twitter: [@ygtmrsn](https://twitter.com/ygtmrsn)\n- LinkedIn: [yigitmersin](linkedin.com/in/yigitmersin)\n\n## 🤝 Contributing\n\nContributions, issues, and feature requests are welcome!\n\nFeel free to check the [issues page](https://github.com/yigitm/book-appointment/issues).\n\n## Show your support\n\nGive a ⭐️ if you like this project!\n\n## Acknowledgments\n\n- Microverse\n- Open source\n\n## 📝 License\n\nCopyright (c) 2012-2022 Microverse\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyigitm%2Fbook-appointment","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyigitm%2Fbook-appointment","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyigitm%2Fbook-appointment/lists"}