Giter VIP home page Giter VIP logo

spring-pokemon's Introduction

spring-pokemon

Project for practicing full stack web dev with Spring & React

spring-pokemon's People

Contributors

miishri avatar

Forkers

aniket1398

spring-pokemon's Issues

Create wireframe design for Pokemon page

WHAT

  • Wireframe created in figma to represent the design of the Pokemon page
    • Pokemon page: lists out all the pokemons for the user to view and add to their "list"

WHY

  • Makes development easier
  • Helps us stay on track and in scope of current features

HOW

  • use figma and screenshot the design

Create UsersPokemon module

NOTE: depends on issue #12

WHAT

  • Collection of classes representing the UsersPokemon domain object for CRUD operations

WHY

  • UsersPokemonModel: represents UsersPokemon POJO object and maps to the UsersPokemon table in database
  • UsersPokemonRepository: provides DAO operations for the UsersPokemon entity
  • UsersPokemonService: uses UsersPokemonRepository to perform CRUD operations + business logic
  • UsersPokemonController: uses UsersPokemonService and UsersPokemonModel to allow for REST operations

HOW

TEST

  • Demonstrate or check if application allows for CRUD operations via HTTP

Setup backend starter code

WHAT

  • Boilerplate code for backend with Spring Boot, Spring Security, Spring JPA, etc built with Maven

WHY

  • Spring Security
    • Framework that provides auth features to java apps
  • Spring Data JPA
    • Allows use of repositories to handle data operations

HOW

  • Generate spring project with initializer
  • Add dependencies:
    • Spring web
    • Spring Data JPA
    • Spring Security
    • Dev Tools
    • MySQL Driver
  • Create backend directory in project root directory and paste spring boot start code contents there

Setup frontend starter code

WHAT

  • Boilerplate code for React app built with Vite

WHY

  • React is a popular framework and great for beginners to learn
  • Vite offers many developer quality-of-life features over Create-react-app, such as faster experience with creating, updating, and building

HOW

  • Create frontend directory in root directory
  • npm create vite@latest

Test

  • npm run dev and visit localhost:3000

Setup database

WHAT

  • Seeds Pokemon table from existing pokemon data sources found here: csv

WHY

  • Might be more performant to retrieve and operate on collections of pokemon data from database, rather than retrieving from external API

HOW

  • Create SQL script according to Spring Data JPA conventions to allow Spring to automatically populate Pokemon table with data
  • Use csv for Pokemon name and id values
  • use the following URL scheme for Pokemon image value: https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/<pokemon-id>.png (replace <pokemon-id> with actual pokemon id)

TEST

  • Demonstrate data is present in Pokemon table via queries

Create User Module

WHAT

  • Collection of classes representing the User domain object for CRUD operations

WHY

  • UserModel: represents User POJO object and maps to the User table in database
  • UserRepository: provides DAO operations for the User entity
  • UserService: uses UserRepository to perform CRUD operations + business logic
  • UserController: uses UserService and UserModel to allow for REST operations

HOW

TEST

  • Demonstrate or check if application allows for CRUD operations via HTTP

Create Pokemon Module

WHAT

  • Collection of classes representing the Pokemon domain object for READ-ONLY operations

WHY

  • PokemonModel: represents Pokemon POJO object and maps to the Pokemon table in database
  • PokemonRepository: provides READ operations for the Pokemon entity
  • PokemonService: uses PokemonRepository to perform READ operations + business logic
    • implements pagination, filtering, sorting, etc
  • PokemonController: uses PokemonService and PokemonModel to allow for read only REST operations

HOW

TEST

  • Demonstrate or check if application allows for READ operations via HTTP
  • Demonstrate or check if applications disallows non-READ operations

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.