{"id":19297396,"url":"https://github.com/itsferdiardiansa/media-app","last_synced_at":"2026-04-07T22:31:45.425Z","repository":{"id":260602515,"uuid":"880696350","full_name":"itsferdiardiansa/Media-App","owner":"itsferdiardiansa","description":"A scalable, containerized, and serverless media application built using a modern tech stack. Using monorepo to simplifies development, testing, and deployment.","archived":false,"fork":false,"pushed_at":"2025-02-14T06:31:20.000Z","size":101,"stargazers_count":1,"open_issues_count":7,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-14T07:29:22.089Z","etag":null,"topics":["aws","aws-cognito","aws-rds-postgres","codecov","docker","jest","microservices","nest","nextjs","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/itsferdiardiansa.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-10-30T07:25:58.000Z","updated_at":"2025-01-25T08:42:17.000Z","dependencies_parsed_at":"2025-01-04T06:18:39.168Z","dependency_job_id":"3333b179-47db-44c6-81e0-b7ef3aeb8a2e","html_url":"https://github.com/itsferdiardiansa/Media-App","commit_stats":null,"previous_names":["itsferdiardiansa/media-app"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itsferdiardiansa%2FMedia-App","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itsferdiardiansa%2FMedia-App/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itsferdiardiansa%2FMedia-App/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itsferdiardiansa%2FMedia-App/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/itsferdiardiansa","download_url":"https://codeload.github.com/itsferdiardiansa/Media-App/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240400338,"owners_count":19795332,"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":["aws","aws-cognito","aws-rds-postgres","codecov","docker","jest","microservices","nest","nextjs","typescript"],"created_at":"2024-11-09T23:04:36.953Z","updated_at":"2026-04-07T22:31:45.419Z","avatar_url":"https://github.com/itsferdiardiansa.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# Media Application Monorepo\n\nA scalable, containerized, and serverless media application built using a modern tech stack. This monorepo structure simplifies development, testing, and deployment.\n\n## Tech Stack\n\n| Dependency       | Description                                                                                                           |\n| ---------------- | --------------------------------------------------------------------------------------------------------------------- |\n| [![SST](https://img.shields.io/badge/SST-Serverless%20Stack-blue?style=flat\u0026logo=aws-lambda)](https://serverless-stack.com/)              | **Serverless Stack (SST)**: Manages AWS resources with serverless deployment.                        |\n| [![NestJS](https://img.shields.io/badge/NestJS-Node%20Backend-red?style=flat\u0026logo=nestjs)](https://nestjs.com/)                            | **NestJS**: Backend framework for building server-side applications in TypeScript.                   |\n| [![Next.js](https://img.shields.io/badge/Next.js-React%20Frontend-lightgrey?style=flat\u0026logo=nextdotjs)](https://nextjs.org/)               | **Next.js**: Framework for server-rendered React applications.                                       |\n| [![TypeScript](https://img.shields.io/badge/TypeScript-JavaScript%20with%20Types-blue?style=flat\u0026logo=typescript)](https://www.typescriptlang.org/) | **TypeScript**: Typed JavaScript for safer and more scalable code.                                   |\n| [![Styled Components](https://img.shields.io/badge/Styled--Components-CSS%20in%20JS-orange?style=flat\u0026logo=styled-components)](https://styled-components.com/) | **Styled Components**: CSS-in-JS for styling React components.                                      |\n| [![Docker](https://img.shields.io/badge/Docker-Containerization-blue?style=flat\u0026logo=docker)](https://www.docker.com/)                    | **Docker**: Containerizes the app for consistent deployment.                                         |\n| [![Nx](https://img.shields.io/badge/Nx-Monorepo%20Management-blueviolet?style=flat\u0026logo=nx)](https://nx.dev/)                            | **Nx Monorepo**: Manages multiple projects and shared libraries within one repo.                    |\n| [![pnpm](https://img.shields.io/badge/pnpm-Workspace%20Management-yellowgreen?style=flat\u0026logo=pnpm)](https://pnpm.io/)                   | **pnpm Workspaces**: Efficiently manages dependencies across the monorepo.                           |\n| [![GitHub Actions](https://img.shields.io/badge/GitHub%20Actions-CI%2FCD%20Automation-lightblue?style=flat\u0026logo=github-actions)](https://github.com/features/actions) | **GitHub Actions**: Automates testing, building, and deployment workflows. |\n\n---\n\n## Prerequisites\n\n| Tool                    | Version      |\n| ----------------------- | ------------ |\n| [![Node.js](https://img.shields.io/badge/Node.js-16%2B-green?style=flat\u0026logo=nodedotjs)](https://nodejs.org/) | \u003e= 16.x |\n| [![pnpm](https://img.shields.io/badge/pnpm-7%2B-yellowgreen?style=flat\u0026logo=pnpm)](https://pnpm.io/)           | Latest version |\n| [![Docker](https://img.shields.io/badge/Docker-Latest-blue?style=flat\u0026logo=docker)](https://www.docker.com/)  | Latest version |\n| [![AWS CLI](https://img.shields.io/badge/AWS%20CLI-Latest-orange?style=flat\u0026logo=amazon-aws)](https://aws.amazon.com/cli/) | Latest version |\n| [![SST CLI](https://img.shields.io/badge/SST%20CLI-Latest-blue?style=flat\u0026logo=aws-lambda)](https://docs.serverless-stack.com/) | Latest version |\n\n---\n\n## Getting Started\n\n### Project Structure\n\n```plaintext\nmedia-app/\n├── apps/\n│   ├── api/              # NestJS Rest API\n│   ├── client/           # Next.js Frontend application\n│   └── sst-infra/        # SST infrastructure configuration\n├── libs/                 # Shared libraries for all apps\n├── .github/workflows/    # GitHub Actions for CI/CD\n├── Dockerfile            # Docker configuration for containerizing the app\n└── pnpm-workspace.yaml   # pnpm workspace configuration\n```\n\n### Installation\n\n1. **Clone the repository**:\n\n   ```bash\n   git clone https://github.com/itsferdiardiansa/Media-App.git\n   cd media-app\n   ```\n\n2. **Install dependencies**:\n\n   ```bash\n   pnpm install\n   ```\n\n3. **Set up environment variables**:\n\n   Copy `.env.example` to `.env` in each app (`apps/api`, `apps/client`, etc.) and fill in the required values.\n\n4. **Running the Applications**:\n\n   - **api (NestJS)**:\n     ```bash\n     Command to run api here...\n     ```\n\n   - **client (Next.js)**:\n     ```bash\n     Command to run clients here...\n     ```\n\n   - **SST Infrastructure**:\n     To start SST for local development (uses AWS resources):\n     ```bash\n     Commands to run sst here...\n     ```\n\n5. **Docker**:\n\n   Build and run the Docker container:\n   ```bash\n   Commands to run docker here...\n   ```\n\n### Running Tests\n\nUse Nx to run tests for each application:\n\n```bash\nCommands to run the test here...\n```\n\n### Deployment\n\nThe project uses **GitHub Actions** for CI/CD. Any push to the `main` branch triggers a workflow to:\n\n1. Build the Docker image.\n2. Deploy the serverless stack to AWS.\n\n#### Manual Deployment\n\nTo manually deploy the SST stack to AWS:\n\n```bash\nCommand to deploy here...\n```\n\n## License\n\nThis project is licensed under the MIT License.\n\n---\n\n## Additional Notes\n\n- **Nx Monorepo**: Nx makes managing multiple apps and libraries easier, all in a single repo.\n- **pnpm Workspace**: Efficient dependency management, speeding up installation and reducing duplicate packages.\n- **GitHub Actions**: CI/CD workflows ensure consistent testing and deployment.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fitsferdiardiansa%2Fmedia-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fitsferdiardiansa%2Fmedia-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fitsferdiardiansa%2Fmedia-app/lists"}