BodeiBrouwer / Game_Plan-server

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Game Plan


Description

Share the best improv warm-ups, exercises and scene formats with the world. Add uploaded games to your training plan to put together the perfect improv training.

User Stories

  • 404 - As a user I want to see a nice 404 page when I go to a page that doesn’t exist so that I know it was my fault.
  • login-signup - As a user I want to see a page that lets me easily sign in as an existing user.
  • signup - As a user I want to see a page that very briefly explains Game Plan and lets me easily sign up.
  • games-page - As a user I want to see a page that lets me search and like warm-ups, exercises and scenes by tags and popularity.
  • game-details-page - As a user I want to see the specs of the game: name, description, purpose, creator and video(optional).
  • new-game-page - As a user I want to add my own games with specs: name, description, purpose, creator, tags and video(optional).
  • edit-game-page - As a user I want to be able to edit the games that I have added.
  • my-trainings-page - As a user I want to see an overview of all the trainings I have created.
  • new-training-page - As a user I want to be able to change my password and username and potentially connect with other users.
  • training-details-page - As a user I want to see the details of my trainings including: name, description, duration, games and notes.
  • edit-training-page - As a user I want to be able to edit the trainings that I have added.

Backlog

  • Comment on games
  • Make training plans public
  • Suggestion API (generate random improv suggestions)
  • My games page

Client

Routes (back-end)

  • / - Home (limited games list)
  • /auth/signup - Signup form
  • /auth/login - Login form
  • /games - games list
  • /games/create - create a game
  • /games/:id - games detail
  • /games/:id/edit - edit games detail
  • /games/:id/add - add game to training
  • /games/:id/delete - delete games
  • /trainings - my trainings
  • /trainings/create - create a training
  • /trainings/:id - training detail
  • /trainings/:id/edit - edit training detail
  • /trainings/:id/delete - delete trainings
  • 404

Pages

  • Home Page (public)
  • Sign in Page (anon only)
  • Log in Page (anon only)
  • Games List Page (public)
  • Game Detail Page (public)
  • Games Create (user only)
  • Games Edit (user only)
  • My trainings (user only)
  • Create training (user only)
  • training Details (user only)
  • training Edit (user only)
  • 404 Page (public)

Components

  • LoginPage

  • SignupPage

  • NavBar

  • SearchGames

  • Tags

  • GamesList

  • GameCreate

  • GameEdit

  • GameDelete

  • GameDetails

  • Searchtrainings

  • TrainingsList

  • TrainingCreate

  • TrainingEdit

  • TrainingDetails

Services

  • Auth Service

    • auth.login(user)
    • auth.signup(user)
    • auth.logout()
  • Game Plan Service

    • gameplan.filter(warm-up, exercise, scenes) // for different types of games
    • gameplan.game-details(id)
    • gameplan.game-add(id)
    • gameplan.game-edit(id)
    • gameplan.trainings
    • gameplan.training-details(id)
    • gameplan.training-add(id)
    • gameplan.training-delete(id)
    • gameplan.training-edit(id)

Server / back end

Models

User

    new Schema ({
     	_id: ,
      email: String, required: true, unique: true,
      password: String, minlength: 6, maxlength: 12, required: true,
     	username: String, required: true, maxlength: 20
		})

Games

    new Schema ({
      _id: ,
      creator: Object Id (user), required: true,
      name: String, required: true,
      description: String, required: true,
      purpose: String, required: true,
      credit: String,
      video: String,
      tags: Array (of String), required: true,
    })

Trainings

	  new Schema ({
			_id: ,
      owner: Object Id (user), required: true,
	    name: String, required: true,
      description: String, required: true,
      length: Number,
      notes: Number,
      games: Array {object id: games}
    })

Links

Deployment

https://gameplan-improv.herokuapp.com/games

Github Client

https://github.com/BodeiBrouwer/Game_Plan-Client

Github Server

https://github.com/BodeiBrouwer/Game_Plan-server

Slides

https://docs.google.com/presentation/d/1L63Xgmsu6BMaW9f28KyoThLLVVmRT4_KnsPPFUZItaw/edit?usp=sharing

About


Languages

Language:JavaScript 94.0%Language:HTML 5.9%Language:SCSS 0.2%