{"id":24829483,"url":"https://github.com/stanmiglight/student-portfolio","last_synced_at":"2026-04-29T00:03:35.083Z","repository":{"id":274927902,"uuid":"924486686","full_name":"stanmiglight/student-portfolio","owner":"stanmiglight","description":"a compilation of projects that demonstrate different functionalities","archived":false,"fork":false,"pushed_at":"2025-01-30T06:44:56.000Z","size":21,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-30T07:29:13.928Z","etag":null,"topics":["fastapi","jsonplaceholder","python","python-dotenv","student-portfolio"],"latest_commit_sha":null,"homepage":"","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/stanmiglight.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":"2025-01-30T05:04:07.000Z","updated_at":"2025-01-30T06:45:00.000Z","dependencies_parsed_at":"2025-01-30T07:39:20.355Z","dependency_job_id":null,"html_url":"https://github.com/stanmiglight/student-portfolio","commit_stats":null,"previous_names":["stanmiglight/student-portfolio"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stanmiglight%2Fstudent-portfolio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stanmiglight%2Fstudent-portfolio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stanmiglight%2Fstudent-portfolio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stanmiglight%2Fstudent-portfolio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stanmiglight","download_url":"https://codeload.github.com/stanmiglight/student-portfolio/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245573905,"owners_count":20637674,"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":["fastapi","jsonplaceholder","python","python-dotenv","student-portfolio"],"created_at":"2025-01-30T23:26:00.543Z","updated_at":"2026-04-29T00:03:34.983Z","avatar_url":"https://github.com/stanmiglight.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Multi-API FastAPI Repository\n\nThis repository contains four distinct FastAPI projects, each demonstrating different functionalities and use cases. Below is a brief overview of each project and instructions on how to set up and run them.\n\n## Projects Overview\n\n### 1. Factorial Calculator API\n**Description:** A simple API that calculates the factorial of a given integer.\n\n**Endpoints:**\n- `GET /factorial/{starting_number}`: Returns the factorial of the provided integer.\n\n**File:** `main.py`\n\n---\n\n### 2. User Management API\n**Description:** A CRUD API for managing a list of users. Supports creating, reading, updating, and deleting users.\n\n**Endpoints:**\n- `GET /users`: Retrieve all users or a specific user by `user_id`.\n- `POST /users`: Create a new user.\n- `PUT /users/{user_id}`: Update an existing user.\n- `DELETE /users/{user_id}`: Delete a user.\n\n**File:** `main.py`\n\n---\n\n### 3. External API Integration\n**Description:** Demonstrates how to interact with an external API ([JSONPlaceholder](https://jsonplaceholder.typicode.com/)) to fetch and manipulate data.\n\n**Endpoints:**\n- `GET /posts/`: Retrieve all posts or a specific post by `postId`.\n- `GET /comments/`: Retrieve all comments or comments for a specific post by `postId`.\n- `GET /formatted_posts/{userID}`: Retrieve and format posts for a specific user.\n- `GET /formatted_comment/{postID}`: Retrieve and format comments for a specific post.\n- `GET /detailed_post/{userID}`: Retrieve detailed posts and comments for a specific user.\n\n**File:** `main.py`\n\n---\n\n### 4. Task Management API (v1 and v2)\n**Description:** A task management system with two versions (v1 and v2) of the API. Each version has its own database and supports CRUD operations on tasks.\n\n**Endpoints:**\n- `GET /apiv1/`, `GET /apiv2/`: Welcome messages for API v1 and v2.\n- `GET /apiv1/tasks/`, `GET /apiv2/tasks/`: Retrieve all tasks in v1 or v2.\n- `GET /apiv1/tasks/{task_id}`, `GET /apiv2/tasks/{task_id}`: Retrieve a specific task by `task_id`.\n- `POST /apiv1/tasks/`, `POST /apiv2/tasks/`: Create a new task.\n- `DELETE /apiv1/tasks/{task_id}`, `DELETE /apiv2/tasks/{task_id}`: Delete a task by `task_id`.\n- `PATCH /apiv1/tasks/{task_id}`, `PATCH /apiv2/tasks/{task_id}`: Update a task by `task_id`.\n\n**File:** `main.py`\n\n---\n\n## Installation\n\n### Clone the repository:\n```bash\ngit clone https://github.com/stanmiglight/student-portfolio.git\ncd multi-api-fastapi-repo\n```\n\n### Set up a virtual environment (optional but recommended):\n```bash\npython -m venv venv\nsource venv/bin/activate  # On Windows use `venv\\Scripts\\activate`\n```\n\n### Install dependencies:\n```bash\npip install -r requirements.txt\n```\n\n### Create a `.env` file (for Task Management API):\nCreate a `.env` file in the root directory and add your API key:\n```env\nAPI_KEY=your_api_key_here\n```\n\n---\n\n## Usage\nOnce the server is running, you can access the APIs at `http://127.0.0.1:8000`. Use tools like `curl`, Postman, or your browser to interact with the endpoints.\n\n### API Key Authentication (Task Management API)\nFor the Task Management API, include the API key in the `Authorization` header of your requests:\n```bash\nAuthorization: Bearer your_api_key_here\n```\n\n---\n\n## Contributing\nContributions are welcome! Please feel free to submit a Pull Request.\n\n\n---\n\n## Acknowledgments\n- Sir Paulo for everything!\n- [FastAPI](https://fastapi.tiangolo.com/) for providing an easy-to-use and high-performance web framework.\n- [JSONPlaceholder](https://jsonplaceholder.typicode.com/) for providing a free fake API for testing and prototyping.\n- [python-dotenv](https://pypi.org/project/python-dotenv/) for managing environment variables.\n- **Python** for being awesome.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstanmiglight%2Fstudent-portfolio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstanmiglight%2Fstudent-portfolio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstanmiglight%2Fstudent-portfolio/lists"}