{"id":19296967,"url":"https://github.com/hasnaat-iftikhar/db-visualizer-api","last_synced_at":"2026-01-29T07:39:54.935Z","repository":{"id":261923758,"uuid":"885725698","full_name":"hasnaat-iftikhar/db-visualizer-api","owner":"hasnaat-iftikhar","description":"A backend API built with Flask to support a database visualization tool.","archived":false,"fork":false,"pushed_at":"2024-11-09T08:36:07.000Z","size":36094,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-12T20:05:25.291Z","etag":null,"topics":["flask","flask-api","flask-backend","flask-restful","flask-sqlalchemy","python-app","python-library","python3"],"latest_commit_sha":null,"homepage":"","language":"Python","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/hasnaat-iftikhar.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-11-09T08:18:46.000Z","updated_at":"2024-11-09T08:39:12.000Z","dependencies_parsed_at":"2024-11-09T09:45:42.059Z","dependency_job_id":null,"html_url":"https://github.com/hasnaat-iftikhar/db-visualizer-api","commit_stats":null,"previous_names":["hasnaat-iftikhar/db-visualizer-api"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hasnaat-iftikhar/db-visualizer-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hasnaat-iftikhar%2Fdb-visualizer-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hasnaat-iftikhar%2Fdb-visualizer-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hasnaat-iftikhar%2Fdb-visualizer-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hasnaat-iftikhar%2Fdb-visualizer-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hasnaat-iftikhar","download_url":"https://codeload.github.com/hasnaat-iftikhar/db-visualizer-api/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hasnaat-iftikhar%2Fdb-visualizer-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28870639,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-29T07:35:32.468Z","status":"ssl_error","status_checked_at":"2026-01-29T07:33:31.463Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["flask","flask-api","flask-backend","flask-restful","flask-sqlalchemy","python-app","python-library","python3"],"created_at":"2024-11-09T23:01:03.259Z","updated_at":"2026-01-29T07:39:54.913Z","avatar_url":"https://github.com/hasnaat-iftikhar.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Project Name: Flask Database Management System\n\nThis is a Flask-based web application for managing database projects. The app allows users to create projects, define tables within those projects, and add fields to each table. This project serves as a basic framework for managing relational databases with a clean interface and the flexibility to extend and modify as needed.\n\n## Features\n\n- **User Management**: Users can create an account and manage their profile.\n- **Project Management**: Users can create, update, and delete projects.\n- **Table Management**: Each project can have multiple tables, and users can define tables with custom names and descriptions.\n- **Field Management**: Users can define fields for each table with specified data types.\n\n## Technologies Used\n\n| Technology    | Description                                                      |\n|---------------|------------------------------------------------------------------|\n| **Python 3.8+** | Programming language used for the backend.                      |\n| **Flask**      | A lightweight WSGI web application framework.                    |\n| **SQLAlchemy** | ORM for database operations.                                    |\n| **SQLite**     | Default database for development and testing.                   |\n| **Flask-Migrate** | For database migration handling.                              |\n| **Enum**       | To define user types and roles.                                  |\n\n## Installation\n\n1. Clone the repository:\n\n   ```bash\n   git clone https://github.com/hasnaat-iftikhar/DB-Visualizer-API.git\n   cd repository-name\n   ```\n\n2. Set up your virtual environment:\n\n   ```bash\n   python -m venv venv\n   ```\n\n3. Activate the virtual environment:\n   - **Windows**:\n     ```bash\n     venv\\Scripts\\activate\n     ```\n   - **macOS/Linux**:\n     ```bash\n     source venv/bin/activate\n     ```\n\n4. Install the required dependencies:\n\n   ```bash\n   pip install -r requirements.txt\n   ```\n\n5. Set up your database and migration:\n\n   ```bash\n   flask db init\n   flask db migrate -m \"Initial migration\"\n   flask db upgrade\n   ```\n\n6. Run the application:\n\n   ```bash\n   flask run\n   ```\n\n   The app will be available at `http://127.0.0.1:5000/`.\n\n## API Endpoints\n\n| HTTP Method | Endpoint             | Description                                             |\n|-------------|----------------------|---------------------------------------------------------|\n| **GET**     | /api/users           | Get the list of all users.                              |\n| **POST**    | /api/users           | Create a new user.                                      |\n| **GET**     | /api/projects        | Get the list of all projects for a user.                |\n| **POST**    | /api/projects        | Create a new project.                                   |\n| **GET**     | /api/tables          | Get the list of all tables for a project.               |\n| **POST**    | /api/tables          | Create a new table in a project.                        |\n| **GET**     | /api/fields          | Get the list of all fields for a table.                 |\n| **POST**    | /api/fields          | Create a new field in a table.                          |\n\n## Database Models\n\n### User Model\n\n| Column Name    | Data Type         | Description                                         |\n|----------------|-------------------|-----------------------------------------------------|\n| **id**         | Integer (Primary Key) | Unique identifier for each user.                  |\n| **username**   | String            | Unique username for each user.                     |\n| **first_name** | String            | User's first name.                                  |\n| **last_name**  | String            | User's last name.                                   |\n| **email**      | String            | User's email address.                               |\n| **password**   | String            | User's hashed password.                             |\n| **profile_picture** | String      | URL/path to the user's profile picture.            |\n| **user_type**  | Enum (UserTypeEnum) | Type of the user (student or professional).       |\n| **role**       | Enum (RoleEnum)    | Role of the user (developer, database designer).    |\n| **company_name** | String (Optional) | User's company name (if applicable).              |\n| **created_at** | DateTime          | Timestamp when the user was created.                |\n| **updated_at** | DateTime          | Timestamp when the user was last updated.           |\n\n### Project Model\n\n| Column Name    | Data Type         | Description                                         |\n|----------------|-------------------|-----------------------------------------------------|\n| **id**         | Integer (Primary Key) | Unique identifier for each project.              |\n| **user_id**    | Integer (Foreign Key) | User who created the project.                     |\n| **name**       | String            | Name of the project.                                |\n| **description**| String (Optional) | Description of the project.                         |\n| **created_at** | DateTime          | Timestamp when the project was created.             |\n| **updated_at** | DateTime          | Timestamp when the project was last updated.        |\n\n### Table Model\n\n| Column Name    | Data Type         | Description                                         |\n|----------------|-------------------|-----------------------------------------------------|\n| **id**         | Integer (Primary Key) | Unique identifier for each table.                 |\n| **project_id** | Integer (Foreign Key) | Project to which the table belongs.               |\n| **name**       | String            | Name of the table.                                  |\n| **created_at** | DateTime          | Timestamp when the table was created.               |\n| **updated_at** | DateTime          | Timestamp when the table was last updated.          |\n\n### Field Model\n\n| Column Name    | Data Type         | Description                                         |\n|----------------|-------------------|-----------------------------------------------------|\n| **id**         | Integer (Primary Key) | Unique identifier for each field.                 |\n| **table_id**   | Integer (Foreign Key) | Table to which the field belongs.                 |\n| **name**       | String            | Name of the field.                                  |\n| **type**       | String            | Data type of the field (e.g., string, integer).    |\n| **created_at** | DateTime          | Timestamp when the field was created.               |\n| **updated_at** | DateTime          | Timestamp when the field was last updated.          |\n\n## Contributing\n\nWe welcome contributions to this project. Here are some ways you can help:\n\n1. **Fork the repository** and create your branch.\n2. **Submit issues** if you find any bugs or have feature requests.\n3. **Create pull requests** to propose new features or fixes.\n\n## License\n\nThis project is licensed under the MIT License - see the LICENSE file for details.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhasnaat-iftikhar%2Fdb-visualizer-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhasnaat-iftikhar%2Fdb-visualizer-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhasnaat-iftikhar%2Fdb-visualizer-api/lists"}