Skip to content

feat: Add Movie Collection App with Movies, Actors, and Genres CRUD#311

Open
fahrigedik wants to merge 3 commits intomasterfrom
MovieCollectionApp
Open

feat: Add Movie Collection App with Movies, Actors, and Genres CRUD#311
fahrigedik wants to merge 3 commits intomasterfrom
MovieCollectionApp

Conversation

@fahrigedik
Copy link
Member

image

Summary

Complete implementation of a Movie Collection application with three core entities, full CRUD operations, and relationship management across all ABP layers.

What's New

Entities & Relationships

  • Genre — Name, Description
  • Actor — Name, BirthDate, Biography
  • Movie — Title, Year, Description, Rating, ImageUrl, GenreId, ActorIds
  • Genre → Movie: One-to-many relationship (dropdown selection)
  • Movie ↔ Actor: Many-to-many relationship (embedded ActorIds list in MongoDB)

Backend (.NET / ABP)

  • Domain entities (AuditedAggregateRoot<Guid>) with validation constants
  • MongoDB collections with AddDefaultRepositories()
  • Application services with full CRUD, lookup endpoints, and referential integrity checks
  • Mapperly-based object mapping (zero-reflection)
  • ABP Permission system: 12 permissions (3 entities × 4 CRUD operations)
  • Localization keys in en.json for all UI labels, menus, and error messages
  • Seed data: 3 genres, 3 actors, 3 movies with TMDB poster URLs

Frontend (Angular)

  • Movies page: Responsive card grid layout with poster images, rating badges, genre tags, and actor lists. Hover animations and placeholder for missing images.
  • Genres page: Standard table-based CRUD
  • Actors page: Standard table-based CRUD with date picker and textarea
  • Movie form includes genre dropdown and actor multi-select (checkboxes)
  • Manual REST proxy services (models, services, barrel exports)
  • Lazy-loaded routes under "Movie Collection" navigation group

Removed

  • Book entity and all related code across every layer (Domain, Application, Contracts, MongoDB, Angular, Tests, Permissions, Localization)

Screenshots

Add screenshots after running the application.

How to Test

# 1. Start MongoDB locally
# 2. Seed the database
dotnet run --project src/MovieCollectionApp.DbMigrator

# 3. Start the API host
dotnet run --project src/MovieCollectionApp.HttpApi.Host

# 4. Start Angular
cd angular && npm start

Add a complete generated ABP solution for MovieCollectionApp. Includes backend projects (Domain, Domain.Shared, Application, Application.Contracts, HttpApi, HttpApi.Host, MongoDB, DbMigrator), Angular frontend, test projects, localization JSONs, project/solution files, Dockerfiles, scripts, editorconfig/gitignore, NuGet.Config and tooling files. Also adds .cursor rules and an mcp.json for ABP Studio. This commit adds the scaffolded starter app with DTOs, app services, controllers, MongoDB integration and sample tests to get development started.
Remove the Books feature across frontend and backend and introduce an imageUrl field and UI improvements for movies. Deleted Angular book component, templates, book proxy (models, service, enums, index), route/menu entries and related tests; removed Book DTOs, CreateUpdateBookDto, IBookAppService, BookAppService, Book domain entity and BookType enum, and associated mapper configurations and permission definitions. Added ImageUrl property to MovieDto and CreateUpdateMovieDto, updated Angular movie proxy models, updated movie component template to a card grid with image preview and actions, added movie component SCSS, removed ngx-datatable usage from movie UI, and cleaned up localization entries and route/provider to no longer reference books.
Completely rewrites and expands the MovieCollectionApp README to improve developer onboarding and documentation. Adds badges, an overview, features, architecture diagram, detailed project structure, data model and relationships, prerequisites, setup and run steps (DbMigrator, API host, Angular), default credentials, UI overview, permissions matrix, MongoDB configuration example, testing and development workflows, guidance for adding entities and generating Angular proxies, useful links, and license information. This change consolidates scattered notes into a single, comprehensive reference for contributors and maintainers.
@fahrigedik fahrigedik requested a review from ebicoglu March 26, 2026 17:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant