{"id":24801386,"url":"https://github.com/umit8098/project_django_rest_framework_flight_app_ch-12","last_synced_at":"2025-03-25T03:55:30.256Z","repository":{"id":236504669,"uuid":"792740434","full_name":"Umit8098/Project_Django_Rest_Framework_Flight_App_CH-12","owner":"Umit8098","description":"A Flight Reservation Application prepared with Django Rest Framework.","archived":false,"fork":false,"pushed_at":"2025-01-24T17:12:18.000Z","size":7340,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-24T18:20:57.790Z","etag":null,"topics":["backend-api","debug-toolbar","dj-rest-auth","django-rest-framework","flight-reservation-application","logging","redoc","swagger","token-authetication"],"latest_commit_sha":null,"homepage":"https://umit8113.pythonanywhere.com/","language":"Python","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/Umit8098.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,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-04-27T12:49:11.000Z","updated_at":"2025-01-24T17:12:22.000Z","dependencies_parsed_at":"2025-01-06T15:33:44.598Z","dependency_job_id":"1db35fbe-93b9-47b5-807d-935ab52c67eb","html_url":"https://github.com/Umit8098/Project_Django_Rest_Framework_Flight_App_CH-12","commit_stats":null,"previous_names":["umit8098/project_django_rest_framework_flight_app_ch-12"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Umit8098%2FProject_Django_Rest_Framework_Flight_App_CH-12","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Umit8098%2FProject_Django_Rest_Framework_Flight_App_CH-12/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Umit8098%2FProject_Django_Rest_Framework_Flight_App_CH-12/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Umit8098%2FProject_Django_Rest_Framework_Flight_App_CH-12/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Umit8098","download_url":"https://codeload.github.com/Umit8098/Project_Django_Rest_Framework_Flight_App_CH-12/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245394766,"owners_count":20608123,"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":["backend-api","debug-toolbar","dj-rest-auth","django-rest-framework","flight-reservation-application","logging","redoc","swagger","token-authetication"],"created_at":"2025-01-30T04:28:25.631Z","updated_at":"2025-03-25T03:55:30.236Z","avatar_url":"https://github.com/Umit8098.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- Please update value in the {}  --\u003e\n\n\u003ch1 align=\"center\"\u003eProject_Django_Rest_Framework_Flight_App\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\u003cstrong\u003e✈️ A modern flight booking system API\n ✈️\u003c/strong\u003e\u003c/p\u003e\n\n\u003c!-- \u003cdiv align=\"center\"\u003e\n  \u003ch3\u003e\n    \u003ca href=\"https://github.com/Umit8098/Project_Django_Rest_Framework_Flight_App_CH-12\"\u003e\n      Demo\n    \u003c/a\u003e\n     | \n    \u003ca href=\"https://umit8113.pythonanywhere.com/\"\u003e\n      Project\n    \u003c/a\u003e\n \n  \u003c/h3\u003e\n\u003c/div\u003e --\u003e\n\n\u003c!-- TABLE OF CONTENTS --\u003e\n\n## Table of Contents\n\n- [Table of Contents](#table-of-contents)\n- [API Documentation](#api-documentation)\n- [API Testing](#api-testing)\n- [Overview](#overview)\n- [Built With](#built-with)\n- [How To Use](#how-to-use)\n- [About This Project](#about-this-project)\n- [Key Features](#key-features)\n- [Contact](#contact)\n\n\n## API Documentation\n\nYou can access the detailed API documentation of the project from the links below:\n\n- [Swagger Documentation](https://umit8113.pythonanywhere.com/swagger/)\n\u003c!-- ![Swagger_Arayüzü](project_screenshot/Swagger_Dokümantasyonu_Görseli.png) --\u003e\n\u003cimg src=\"project_screenshot/Swagger_Dokümantasyonu_Görseli.png\" alt=\"Swagger Arayüzü\" width=\"400\"/\u003e\n➡ Interface that allows you to easily test API endpoints.\n\n---\n\n- [Redoc Documentation](https://umit8113.pythonanywhere.com/redoc/)\n\u003c!-- ![Redoc_Arayüzü](project_screenshot/Redoc_Dokümantasyonu_Görseli.png) --\u003e\n\u003cimg src=\"project_screenshot/Redoc_Dokümantasyonu_Görseli.png\" alt=\"Redoc Arayüzü\" width=\"400\"/\u003e\n➡ Documentation tool that presents the API structure in a detailed and organized way.\n\n---\n\n\u003c!-- - Bu dokümantasyonlar sayesinde API endpoint'lerini kolayca test edebilir ve yapılarını inceleyebilirsiniz. --\u003e\n**Notes:** You can access Swagger and Redoc documentation without any user login.\n\n**Not:** Swagger ve Redoc dokümantasyonlarına herhangi bir kullanıcı girişi yapmadan erişebilirsiniz.\n\n- Along with Swagger and Redoc documentation, you can use our Postman collection to test APIs.\n [Flight Reservation API Postman Collection](https://umit-dev.postman.co/workspace/Team-Workspace~7e9925db-bf34-4ab9-802e-6deb333b7a46/collection/17531143-5c497d31-9dd6-44f2-930c-8f4337595920?action=share\u0026creator=17531143)\n\n## API Testing\n\nTo test APIs via Postman, you can follow the steps below:\n1. Install Postman (if not installed): [Download Postman](https://www.postman.com/downloads/).\n2. This [Postman Collection](https://umit-dev.postman.co/workspace/Team-Workspace~7e9925db-bf34-4ab9-802e-6deb333b7a46/collection/17531143-5c497d31-9dd6-44f2-930c-8f4337595920?action=share\u0026creator=17531143) Download and import.\n3. Start testing APIs via Postman.\n\n**Postman Collection Link:**  \n[Flight Reservation API Postman Collection](https://umit-dev.postman.co/workspace/Team-Workspace~7e9925db-bf34-4ab9-802e-6deb333b7a46/collection/17531143-5c497d31-9dd6-44f2-930c-8f4337595920?action=share\u0026creator=17531143)\n\n\n## Overview\n\nFlight Reservation App is a modern API solution through which users can manage flight reservations. Main features:\n- **Flight Management:** staff users can add, update and delete flights.\n- **Reservation Management:** staff users can view all reservations, users can manage their own reservations.\n- **Anonymous Access:** Unregistered users can only view future flights.\n- **Advanced User Authorization:** Users have the ability to change passwords and manage their own booking processes.\n- **API Documentation with Swagger and Redoc:** Ability to examine and test the API structure in detail.\n- **PostgreSQL Support:** Powerful and reliable database support in the Production environment.\n\n---\n\nFlight Reservation App, kullanıcıların uçuş rezervasyonlarını yönetebileceği modern bir API çözümüdür. Başlıca özellikler:\n- **Uçuş Yönetimi:** staff kullanıcılar uçuşları ekleyebilir, güncelleyebilir ve silebilir.\n- **Rezervasyon Yönetimi:** staff kullanıcılar tüm rezervasyonları görüntüleyebilir, kullanıcılar kendi rezervasyonlarını yönetebilir.\n- **Anonim Erişim:** Kayıtlı olmayan kullanıcılar sadece gelecekteki uçuşları görüntüleyebilir.\n- **Gelişmiş Kullanıcı Yetkilendirme:** Kullanıcılar şifre değiştirme ve kendi rezervasyon işlemlerini yönetme yeteneğine sahiptir.\n- **Swagger ve Redoc ile API Dokümantasyonu:** API yapısını detaylı inceleme ve test etme olanağı.\n- **PostgreSQL Desteği:** Production ortamında güçlü ve güvenilir veritabanı desteği.\n\n---\n\n- Project Swagger and Redoc Documentation Visual \n\u003c!-- ![screenshot](project_screenshot/Flight_App_1.gif) --\u003e\n\u003cimg src=\"project_screenshot/Flight_App_1.gif\" alt=\"Project Swagger and Redoc Documentation Visual\" width=\"400\"/\u003e\n➡ Interface that allows you to easily test API endpoints.\n\n---\n\n- user/authentication app testing on Postman\n\u003c!-- ![screenshot](project_screenshot/user_register.png) --\u003e\n\u003cimg src=\"project_screenshot/user_register.png\" alt=\"user/authentication app testing on Postman\" width=\"400\"/\u003e\n➡ User registration process screen.\n\n---\n- Flight app testing on Postman\n\u003c!-- ![screenshot](project_screenshot/Flight_App_2.gif) --\u003e\n\u003cimg src=\"project_screenshot/Flight_App_2.gif\" alt=\"Flight app testing on Postman\" width=\"400\"/\u003e\n➡ Flight booking test with Postman.\n\n---\n- user/authentication app testing on Postman\n\u003c!-- ![screenshot](project_screenshot/user_detail.png) --\u003e\n\u003cimg src=\"project_screenshot/user_detail.png\" alt=\"user/authentication app testing on Postman\" width=\"400\"/\u003e\n\n---\n- user/authentication app testing on Postman\n\u003c!-- ![screenshot](project_screenshot/user_login.png) --\u003e\n\u003cimg src=\"project_screenshot/user_login.png\" alt=\"user/authentication app testing on Postman\" width=\"400\"/\u003e\n\n---\n- user/authentication app testing on Postman\n\u003c!-- ![screenshot](project_screenshot/user_logout.png) --\u003e\n\u003cimg src=\"project_screenshot/user_logout.png\" alt=\"user/authentication app testing on Postman\" width=\"400\"/\u003e\n\n---\n- user/authentication app testing on Postman\n\u003c!-- ![screenshot](project_screenshot/user_password_change.png) --\u003e\n\u003cimg src=\"project_screenshot/user_password_change.png\" alt=\"user/authentication app testing on Postman\" width=\"400\"/\u003e\n\n---\n\n\u003c!-- - API dokümantasyonları Swagger ve Redoc ile detaylandırılmıştır. İlgili linklere \u003ca href=\"https://umit8113.pythonanywhere.com/swagger/\" target=\"_blank\"\u003eSwagger\u003c/a\u003e ve \u003ca href=\"https://umit8113.pythonanywhere.com/redoc/\" target=\"_blank\"\u003eRedoc\u003c/a\u003e üzerinden ulaşabilirsiniz. --\u003e\n\n- API documentation is detailed with Swagger and Redoc. You can access the relevant links via [Swagger](https://umit8113.pythonanywhere.com/swagger/) and [Redoc](https://umit8113.pythonanywhere.com/redoc/).\n\n\n- Flight Reservation App is a modern backend application developed to enable users to manage flight reservations and provide easy integration with API documentation.\n- Provides CRUD operations specific to users and staff roles.\n- Swagger and Redoc were used for API documentation.\n\n\n\n## Built With\n\n\u003c!-- This section should list any major frameworks that you built your project using. Here are a few examples.--\u003e\n\n- [Django Rest Framework](https://www.django-rest-framework.org/) - A powerful framework for developing REST APIs.\n- [Swagger And Redoc](https://drf-yasg.readthedocs.io/en/stable/readme.html#installation) - API documentation and testing tools. \n- [Debug_Toolbar](https://django-debug-toolbar.readthedocs.io/en/latest/installation.html) - A powerful tool for debugging operations.\n- [Logging](https://docs.djangoproject.com/en/5.1/topics/logging/) - System logging modul\n- [dj-rest-auth](https://dj-rest-auth.readthedocs.io/en/latest/) - User authentication and authorization.\n- PostgreSQL - High performance database for production environment.\n\n\n## How To Use\n\n\u003c!-- This is an example, please update according to your application --\u003e\n\n- For online demo: You can take a look at the [Swagger](https://umit8113.pythonanywhere.com/swagger/) and [Redoc](https://umit8113.pythonanywhere.com/redoc/) interfaces.\n\n- To clone and run this application, you'll need [Git](https://github.com/Umit8098/Project_Django_Rest_Framework_Flight_App_CH-12.git) \n\n- When installing the required packages in the requirements.txt file, review the package differences for windows/macOS/Linux environments. \n\n- Complete the installation by uncommenting the appropriate package.\n\n---\n\n- For online demo: You can take a look at [Swagger](https://umit8113.pythonanywhere.com/swagger/) or [Redoc](https://umit8113.pythonanywhere.com/redoc/) interfaces.\n\n- requirements.txt dosyasındaki gerekli paketlerin kurulumu esnasında windows/macOS/Linux ortamları için paket farklılıklarını inceleyin. \n\n- Uygun olan paketi yorumdan kurtararak kurulumu gerçekleştirin. \n\n---\n\n```bash\n# Clone this repository\n$ git clone https://github.com/Umit8098/Project_Django_Rest_Framework_Flight_App_CH-12.git\n\n# Install dependencies\n    $ python -m venv env\n    $ python3.9 -m venv env (for macOs/linux OS)\n    $ env/Scripts/activate (for win OS)\n    $ source env/bin/activate (for macOs/linux OS)\n    $ pip install -r requirements.txt\n    $ python manage.py migrate (for win OS)\n    $ python3 manage.py migrate (for macOs/linux OS)\n\n# Create and Edit .env\n# Add Your SECRET_KEY in .env file\n\n\"\"\"\n# example .env;\n\nSECRET_KEY =123456789abcdefg...\n\n# for development(dev) environments\nDEBUG =True\n\n# PostgreSQL settings for product (product) environments\nSQL_DATABASE={your_database_name}\nSQL_USER={your_database_user}\nSQL_PASSWORD={your_database_password}\nSQL_HOST=localhost\nSQL_PORT=5432\n\n# for choices environment\nENV_NAME =dev\n# ENV_NAME =prod\n\n# Logging level\nDJANGO_LOG_LEVEL=INFO\n\"\"\"\n\n# Run the app\n    $ python manage.py migrate\n    $ python manage.py runserver\n```\n\n\n## About This Project\n\nThis project was developed to modernize flight booking processes and make flight planning easier for users. It aims to provide solutions for the following situations:\n\n- **User Needs:** Users can manage their own reservations by registering.\n- **Business Requirements:** staff users to manage flights and reservations more efficiently.\n- **Easy Integration:** Easy connection with third-party systems thanks to API documentation.\n\n\nThe following technical approaches and solutions were applied in this project:\n\n- **Development Environment:** Separate settings for Development and Production environments.\n- **Performance Optimization:** Big data management using PostgreSQL.\n- **API Documentation:** Comprehensive API documentation with Swagger and Redoc.\n- **User Authorization:** Authorization structure suitable for staff and normal user roles.\n\n---\n\nBu proje, uçuş rezervasyon süreçlerini modernleştirmek ve kullanıcıların uçuş planlamasını kolaylaştırmak amacıyla geliştirilmiştir. Aşağıdaki durumlar için çözüm sunmayı hedefler:\n\n- **Kullanıcı İhtiyaçları:** Kullanıcıların kayıt olarak kendi rezervasyonlarını yönetebilmesi.\n- **İşletme Gereksinimleri:** staff kullanıcıların uçuşları ve rezervasyonları daha verimli yönetmesi.\n- **Kolay Entegrasyon:** API dokümantasyonu sayesinde üçüncü parti sistemlerle kolay bağlantı kurulması.\n\n\nBu projede aşağıdaki teknik yaklaşımlar ve çözümler uygulanmıştır:\n\n- **Geliştirme Ortamı:** Development ve Production ortamları için ayrı ayarlar.\n- **Performans Optimizasyonu:** PostgreSQL kullanımı ile büyük veri yönetimi.\n- **API Dokümantasyonu:** Swagger ve Redoc ile kapsamlı API dokümantasyonu.\n- **Kullanıcı Yetkilendirme:** staff ve normal kullanıcı rollerine uygun yetkilendirme yapısı.\n\n\n## Key Features\n\n- **Flight Reservation Management:** Users can view and book flights.\n- **Staff Authorizations:** Staff users can fully control flights and reservations.\n- **API Documentation:** Detailed API documentation with Swagger and Redoc.\n- **User Authorization:** Registration, login, password change and reservation management.\n- **PostgreSQL Support:** High performance database in production environment.\n\n---\n\n- **Uçuş Rezervasyon Yönetimi:** Kullanıcılar uçuşları görüntüleyebilir ve rezervasyon yapabilir.\n- **Staff Yetkileri:** Staff kullanıcılar uçuş ve rezervasyonları tam kontrol edebilir.\n- **API Dokümantasyonu:** Swagger ve Redoc ile detaylı API dokümantasyonu.\n- **Kullanıcı Yetkilendirme:** Kayıt, giriş, şifre değiştirme ve rezervasyon yönetimi.\n- **PostgreSQL Desteği:** Production ortamında yüksek performanslı veritabanı.\n\n\n## Contact\n\n\u003c!-- - Website [your-website.com](https://{your-web-site-link}) --\u003e\n- **GitHub** [@Umit8098](https://github.com/Umit8098)\n\n- **LinkedIn** [@umit-arat](https://linkedin.com/in/umit-arat/)\n\u003c!-- - Twitter [@your-twitter](https://{twitter.com/your-username}) --\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fumit8098%2Fproject_django_rest_framework_flight_app_ch-12","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fumit8098%2Fproject_django_rest_framework_flight_app_ch-12","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fumit8098%2Fproject_django_rest_framework_flight_app_ch-12/lists"}