Giter Site home page Giter Site logo

tournament-masterpiece's Introduction

Tournament Masterpiece

A Web app, allowing users to create, manage and participate to their own tournaments.

A singe person fullstack project developped for training purpose.

The project is using the following stacks :

Angular 9 (frontend) ExpressJS (API) MongoDB (database)

How to use :

  • clone the project

  • run the database :

    • Using Docker :
      • open a Command terminal in the project root
      • type > docker-compose database
    • Without Docker :
  • run the API

    • Using Docker :
      • open a Command terminal in the project root
      • type docker-compose database
    • Without Docker:
      • open a Command terminal in the project /back directory
      • Type :
      npm install 
      npm run dev
      it will open a server on localhost:3000
      
  • run the frontend

    • open a Command terminal in the project /app directory
    •    npm install
         ng serve 
    • it will open a server on localhost:4200
  • Once everything is running, open your navigator in localhost:4200

tournament-masterpiece's People

Contributors

ikuzen avatar kimsamba avatar

Stargazers

 avatar

Watchers

James Cloos avatar  avatar  avatar

Forkers

schemea

tournament-masterpiece's Issues

As an admin, I want to be able to modify and delete users and tournaments, to moderate the website

an admin is a user with a ADMIN role.

They have specific view in the app that other roles don't have access to.
They have access to more API requests than other roles.
This role can't be attributed via the frontend

in the frontend
WIP
add route guard for admin role to specfic pages
add buttons on tournaments and user to delete or modify

In the API
add JWT verification, and method that check user role
for PUT and DELETE requests

As a player, I want create my account so I can log in, and join the community

An account is an User object in database.

In the database
create an User collection

In the Api
a public POST request to create a USER
a USER object must have :
required properties :

  • username : string (must be unique in the database, length must be between 3 and 20 characters)

  • password : string (must be between 6 and 30 characters, and contain at least one number and one uppercase character)

  • email : string (must be a valid email)

  • role : string (will be attributed at creation, and set to "member)

  • createdAt: Date( will be attributed at creation)

a public POST method login, that will authentify the user, send a token to the front to keep the session active.
In the frontend
A register button in the main page that leads to a registration page.
Can only be accessed if not logged in.
the page contains a form
the fom will have :

  • username
  • email
  • password
  • password confirmation
    There must be input validation

*If registration succeeds : must be redirected to login page
*if registration fails : must show the error

The login page : contains a form
the fom will have :

  • username
  • email
    in case of success, will redirect to home page, and a pop up of success.
    in case of error : show error.

a 'forgot password' button will redirect to a password recovery page

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.