Coder Social home page Coder Social logo

yuhanpizza / bestmovies Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 1.08 MB

BestMovies ( w/ Unit Tests) a web application built using ASP.NET MVC and Entity Framework 6.0 with Identity, designed to help users explore movie theaters and movies available in their area based on their IP address. Additionally, users can contribute by adding information about theaters and movies, and the app is equipped with user authentication

C# 72.52% HTML 26.60% CSS 0.73% JavaScript 0.16%
asp-net-core cloudinary-integration database-management database-models entity-framework-core enums helpers identity interfaces mvc-architecture mvc-controller repository repository-pattern separation-of-concerns services user-authentication viewmodel views

bestmovies's Introduction

BestMovies๐ŸŽฌ๐Ÿฟ [with Unit Tests!]

IPinfo(HomePage)

Welcome to BestMovies, a delightful web application crafted with love using ASP.NET MVC and Entity Framework 6.0 with Identity. ๐Ÿš€

Explore Cinematic Wonders Near You ๐ŸŒ

Discover movie theaters and films in your area based on your IP address. BestMovies makes it easy to find entertainment tailored to your location using the ipinfo.io API. ๐ŸŽญ๐ŸŽฅ

Features ๐ŸŒŸ

  • Location Magic: Seamlessly determines your location via IP address with the help of the ipinfo.io API.
  • Database Mastery: Manages a localDB with Microsoft SQL Server Manager, providing dedicated tables for theaters, movies, and users.
  • ASP.NET MVC Goodness: Built on the solid foundations of ASP.NET MVC, featuring well-organized controllers, models, and views.
  • Entity Framework Excellence: Leverages Entity Framework 6.0 for robust database operations, including migrations and data seeding.
  • User Authentication Awesomeness: Employs ASP.NET Identity for secure user authentication, with features like login and registration.
  • Cloudinary Charm: Elevates the visuals using Cloudinary for managing images related to theaters, movies, and user profiles.
  • Repository Pattern Elegance: Adopts a repository pattern with interfaces for streamlined management of entities.
  • Structure Matters: Keeps the codebase neat and tidy with organized folders such as Controllers, Models, Repository, Services, Enums, Helpers, Interfaces, and Views.
  • ViewModel Brilliance: Implements separate view models for different functionalities, ensuring a clean and efficient design.

Project Structure ๐Ÿ—๏ธ

Controllers ๐ŸŽฎ

LoginPage

  • AccountController: Your go-to for handling user authentication (Login, Register).
  • DashboardController: Powers user dashboard-related functionalities.
  • HomeController: The conductor for the main landing page.
  • MovieController: Orchestrates movie-related operations (Create, Delete, Detail, Edit, Index).
  • TheatreController: Directs theater-related operations (Create, Delete, Detail, Edit, Index).
  • UserController: The maestro for user-related operations.

Model ๐ŸŽจ

RegisterPage

  • Address: A model for storing address information.
  • AppUsers: The heart of the application, representing our beloved users.
  • ErrorViewModel: Ensures graceful handling of errors.
  • Movies: The star-studded model for storing movie information.
  • Theatre: The spotlight-stealing model for storing theater information.

Repository ๐Ÿ—„๏ธ

AdminMovies

  • DashboardRepository: Responsible for dashboard-related operations.
  • MovieRepository: The guardian of movie-related operations.
  • TheatreRepository: The keeper of theater-related operations.
  • UserRepository: The custodian of user-related operations.

Services ๐Ÿ› ๏ธ

  • PhotoService: UserView A trusted companion for handling image-related operations.

Enums ๐ŸŒˆ

  • A magical realm containing enums for movie and theater categories.

Helpers ๐Ÿค–

  • CloudinarySettings: The wizard behind the curtain for Cloudinary configuration.
  • IPinfo: The messenger for making API calls to ipinfo.io.

Interfaces ๐Ÿค

  • IDashboardRepository: The guide for the dashboard repository.
  • IMovieRepository: The compass for the movie repository.
  • ITheatreRepository: The compass for the theater repository.
  • IUserRepository: The compass for the user repository.

Views ๐Ÿ‘€

TheatrePage

TheatreViewPage

  • Separate folders for each model containing views for different actions.

Unit Testing

I use xUnit, FakeItEasy and Fluent Assertions.

  • xUnit: A testing framework that keeps things simple and snappy. ๐Ÿšฆ

  • FakeItEasy: Our backstage pass to mocking โ€“ perfect for faking it 'til you make it! ๐ŸŽญ

  • Fluent Assertions: Making assertions a breeze with a touch of flair. Fluent and fabulous! ๐Ÿ’ฌ

MVC Controller

TheatreController: All Test Passed!

  • Index() Passed!
  • Detail() Passed!
  • Edit() Passed!
  • Delete() Passed!

MovieController: All Test Passed!

  • Index() Passed!
  • Detail() Passed!
  • Edit() Passed!
  • Delete() Passed!

Repository Test

TheatreRepository: All Test Passed!

  • Add() Passed!
  • GetByIdAsync() Passed!
  • Delete() Passed!
  • GetAll() Passed!
  • Update() Passed!

MovieRepository: All Test Passed!

  • Add() Passed!
  • GetByIdAsync() Passed!
  • Delete() Passed!
  • GetAll() Passed!
  • Update() Passed!

License ๐Ÿ“œ

This project is licensed under the MIT License.

bestmovies's People

Contributors

yuhanpizza avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.