{"id":17947630,"url":"https://github.com/devsoft112/movie-list-angular-dotnet","last_synced_at":"2026-04-10T02:16:05.702Z","repository":{"id":258851524,"uuid":"857841756","full_name":"devsoft112/movie-list-angular-dotnet","owner":"devsoft112","description":"This application is a full-stack movie viewer developed with Angular 18 and .NET 8. It enables users to view, create, update, and delete movies, each with a title, description, genre, and cover image. The back-end API manages movie data stored in an SQL database.","archived":false,"fork":false,"pushed_at":"2024-09-15T19:25:42.000Z","size":907,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-10-29T08:06:03.215Z","etag":null,"topics":["angular","dotnet-core","java","javascript","python3","typescript"],"latest_commit_sha":null,"homepage":"","language":"C#","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/devsoft112.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-09-15T18:39:47.000Z","updated_at":"2024-09-15T19:29:13.000Z","dependencies_parsed_at":"2024-10-22T02:04:28.989Z","dependency_job_id":null,"html_url":"https://github.com/devsoft112/movie-list-angular-dotnet","commit_stats":null,"previous_names":["devsoft112/movie-list-angular-dotnet"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/devsoft112/movie-list-angular-dotnet","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devsoft112%2Fmovie-list-angular-dotnet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devsoft112%2Fmovie-list-angular-dotnet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devsoft112%2Fmovie-list-angular-dotnet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devsoft112%2Fmovie-list-angular-dotnet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/devsoft112","download_url":"https://codeload.github.com/devsoft112/movie-list-angular-dotnet/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devsoft112%2Fmovie-list-angular-dotnet/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271278994,"owners_count":24731900,"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","status":"online","status_checked_at":"2025-08-20T02:00:09.606Z","response_time":69,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["angular","dotnet-core","java","javascript","python3","typescript"],"created_at":"2024-10-29T08:06:05.374Z","updated_at":"2026-04-10T02:16:05.618Z","avatar_url":"https://github.com/devsoft112.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Movie List Application\n\nThis application is a full-stack movie viewer developed with Angular 18 and .NET 8. It enables users to view, create, update, and delete movies, each with a title, description, genre, and cover image. The back-end API manages movie data stored in an SQL database.\n\n## Features\n\n### Front-End\n\n- **Movie List**: Displays all movies in a paginated format.\n- **Movie Detail View**: Shows detailed information about each movie.\n- **CRUD Operations**: Allows users to create, update, and delete movies.\n- **Drag-and-Drop Image Upload**: Users can set a movie's cover image by dragging and dropping an image file.\n- **Responsive Design**: Optimized for a wide range of devices.\n- **Loading Indicators**: Displayed while data is being fetched or submitted.\n- **Error Messages**: Handles and displays error messages for validation failures and other issues.\n\n### Back-End\n\n- **RESTful API**: Manages movies with GET, POST, PUT, and DELETE operations.\n- **Image Handling**: Supports uploading and managing movie cover images.\n- **Sorting and Pagination**: Allows sorting of movies by Id and supports pagination.\n- **Swagger Integration**: Provides interactive API documentation.\n- **Data Seeding**: Seeds the database with initial movie data.\n- **CORS Configuration**: Allows cross-origin requests from the front-end application.\n\n## Project Structure\n\nThe project is divided into two main parts:\n\n- **MovieAPI (Back-End)**\n  - Framework: C# .NET 8\n  - Functionality: RESTful API, Entity Framework Core 8 for database operations, Docker support, Swagger documentation, sorting and pagination support.\n- **MovieAppUI (Front-End)**\n  - Framework: Angular 18\n  - Functionality: Displays list of movies, provides forms for movie creation and editing, uses Angular Material for UI components and styling, supports search and filtering.\n\n## Technologies Used\n\n- .NET 8.0\n- Angular 18\n- Entity Framework Core (PostgreSQL)\n- Swashbuckle (Swagger)\n- Docker\n- PostgreSQL\n\n## Setup Instructions\n\n### Prerequisites\n\n- .NET 8 SDK\n- Node.js\n- Docker (Optional)\n- PostgreSQL (Optional)\n\n### Option 1: Running with Docker for .NET Backend\n\n1. Navigate to the root directory of .net backend: `cd sb-space-angular18-dotnet8\\MovieAPI`\n2. Build and run the Docker containers: `docker-compose up --build -d`\n3. Access the API at http://localhost:5103 and Swagger UI at http://localhost:5103/index.html\n\n### Option 2: Running Without Docker\n\n#### Back-End (MovieAPI)\n\n1. Set Up PostgreSQL: Ensure PostgreSQL is installed and running. Create a database named `movie_db`.\n2. Update the Connection String in `appsettings.json`.\nModify the `ConnectionStrings.MovieDbConnection` in `appsettings.Development.json`:\n\n```json\n\"ConnectionStrings\": {\n  \"MovieDbConnection\": \"Host=localhost;Database=movie_db;Username=[username];Password=[password]\"\n}\n```\n3. Run the Migrations: `dotnet ef database update`\n4. Run the API: `dotnet run`\n5. Access the API at http://localhost:5103 and Swagger UI at http://localhost:5103/index.html\n\n#### Front-End (MovieAppUI)\n\n1. Navigate to the MovieAppUI directory: `cd sb-space-angular18-dotnet8/MovieAppUI`\n2. Install npm packages: `npm install`\n3. Run the Angular application: `ng serve`\n4. The application should be running on http://localhost:4200.\n\n## API Endpoints\n\n- GET /api/movies: Retrieves a paginated list of movies, sorted by Id.\n- GET /api/movies/{id}: Retrieves a specific movie by ID.\n- POST /api/movies: Creates a new movie.\n- PUT /api/movies/{id}: Updates an existing movie.\n- DELETE /api/movies/{id}: Deletes a movie by ID.\n\n## Swagger Documentation\n\nSwagger is integrated into this project for API documentation and testing. Access Swagger UI at http://localhost:5103/index.html.\n\n## Database Seeding\n\nThe application seeds the database with initial data on startup if the database is empty. To modify the seed data, edit the `MovieSeedData.cs` file in the `Data/Seeding` folder.\n\n## Assumptions and Design Decisions\n\n- **Data Seeding**: The database is seeded with initial movies to simplify testing and validation.\n- **Error Handling**: Basic error handling is implemented for both API and UI to manage common scenarios.\n- **Validation**: Form validation is implemented on the front-end to ensure that all required fields are filled before submission.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevsoft112%2Fmovie-list-angular-dotnet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevsoft112%2Fmovie-list-angular-dotnet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevsoft112%2Fmovie-list-angular-dotnet/lists"}