Skip to content

Hilbert: A Full-stack (React/Redux-.NET-MS SQL Server) Movie Poster Review App

Notifications You must be signed in to change notification settings

alphaleph/hilbert-movie-posters

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Logo

Hilbert - Movie Posters

A full-stack (React/Redux-Saga, ASP.NET Core, MS SQL Server) Movie Poster Review App

Table of Contents

About the Project

Hilbert is the one-stop community for movie poster enthusiasts.

  • Come by for a casual perusal! 🎥
  • Leave a fanatic review! ✨
  • Contribute your own movie poster! 👾🌇🎬💯

This project is made from scratch for demonstration and educational purposes. Please feel free to leave comments for improvements or fork it for your own repurposing!

This project is also UNDER HEAVY DEVELOPMENT . Frequent changes will occur.

Home Page

Overall structure:

  • Server: ASP.NET Core RESTful service layer with Entity Framework Core ORM and Swagger API Spec
  • Front-end: SPA-style front-end with React, Redux-Saga, Webpack, Babel, Typescript, Flexbox, Bootstrap, React Router, and Cloudinary CDN
  • Database: MS SQL Server 2017 persistent database running on a Docker container

Built With

Server Front-end Database Tooling
ASP.NET Core MVC React MS SQL Server VS Code
MS EF Core Redux Docker Azure Data Studio
Redux-Saga Swagger
Webpack
Babel
TypeScript
SCSS
Bootstrap
Cloudinary

Getting Started 🌱

Prerequisites

# Retrieve DB image
docker pull mcr.microsoft.com/mssql/server:2017-latest

# Set up DB server (Docker Quickstart Terminal can tell you the IP address of your virtual machine)
docker run -e 'ACCEPT_EULA=Y' \
-e 'SA_PASSWORD=Passw0rd!' \
-p 1433:1433 \
--name movie-posters-db \
-d microsoft/mssql-server-linux:2017-latest

Installation

*Note: DB ConnectionString is hardcoded in this project. For deployment, consider encrypting in a config file or environment variable.

  1. Clone the repo
https://github.com/chaua0927/movie-posters.git
  1. Install EF Core 2.2.0
dotnet add package Microsoft.EntityFrameworkCore.SqlServer --version 2.2.0
  1. Install NPM packages.
npm install

Usage 🎑

#To run db container, syntax is for Docker Toolbox
docker container start movie-posters-db

#To run webserver at localhost:5000 and :5001
dotnet run

#To stop db container when finished
docker container stop movie-posters-db

Roadmap ⛺

User Features

  • View List of Movie Posters
  • Base UI Design + Icon
  • Add Animations/Transitions
  • CRUD Movie Posters
  • CRUD Comments
  • Movie Poster Search
  • Account Management

Backend Features

  • Fundamental stack set-up (React with Webpack and Babel, ASP.NET CORE, EF Core, MS SQL Server on Docker)
  • Add [React] Bootstrap
  • Add React Router + React-Router-Bootstrap
  • Migrate to Redux + Redux-Saga
  • Implement reverse proxy server (Nginx)
  • Implement Swagger API spec
  • Migrate poster image to Cloudinary CDN

Technical Fixes

  • SPA: History API fallback
  • API: Complete API search capabilities
  • API: Lagging DB nav prop refs?
  • TS: Fix react-redux connect() typing (potential solution here)
  • a11y: Carousel (indicators and auto-scroll control)
  • a11y: Star Ratings
  • a11y: Zoom scaling

Optimizations

  • Implement lazy-loading
  • Individually import Bootstrap plugins *Needs exports-loader
  • Implement pagination of DB access
  • Implement UUIDs for DB entries
  • SPA: Gradually integrate SSR
  • Optimize Redux state slice allocation, via combineReducers?
  • SPA: More graceful error-handling from server errors?
  • SCSS: Organize animations as mixins

Dev Environment

  • Set up source maps + HMR
  • Set up BDD/TDD: Cucumber + Selenium + Jest
  • Set up SCSS env (minifying, autoprefixer)
  • Migrate to Typescript

License

Distributed under the MIT License.

All images are intended for non-commercial entertainment and education use only - reviews, fan art, blogs, forums, etc. Hilbert is not endorsed, sponsored or affiliated with any movie studio. All copyrights, trademarks, and logos are owned by their respective owners. This site is for non-profit/educational use only. Using images from this project to make and/or sell reprinted movie posters is strictly forbidden.

About

Hilbert: A Full-stack (React/Redux-.NET-MS SQL Server) Movie Poster Review App

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published