Git Product home page Git Product logo

web-googolplex-tx's Introduction

web-googolplex-tx's People

Contributors

milospp avatar njmarko avatar

Stargazers

 avatar

Watchers

 avatar  avatar

web-googolplex-tx's Issues

Modify Class Model

Make modification to the class model after considering all our options.

  • Finish modification of the class model

Implement methods in Ticket controller

Implement a basic set of methods for Ticket controller. Checks if the user has the right to access the data can be added after login is implemented.

  • Find all tickets
  • Find one ticket
  • Save one ticket
  • Edit one ticket
  • Find all tickets by user
  • Search
  • Search by user

Implement methods in Manifestation controller

Implement a basic set of methods for Manifestation controller. Checks if the user has the the right to access the data can be added after login is implemented.

  • Find all manifestations
  • Find one manifestation
  • Save one manifestation
  • Edit one manifestation
  • Delete one manifestation
  • Find all tickets for one manifestation
  • Find one ticket
  • Save one ticket for one manifestation and user
  • Edit one ticket
  • Delete one ticket
  • Find all comments for one manifestation
  • Find one comment
  • Save one comment for one manifestation and user
  • Edit one comment
  • Delete one comment

Create REST API

Design and create REST api in SPARK. Figure out how to create different controllers for different entities in SPARK.

  • Create test data in memory
  • Adapt model
  • Design REST api (in txt format)
  • Create adequate controllers for the REST api
  • Test rest api with POSTMAN (it is too slow to test it from frontend at this stage)

Implement a basic set of methods for User controller

  • Find all users
  • Find one user
  • Save one user
  • Edit one user
  • Delete one user
  • Find all tickets for one user
  • Find one ticket (it can call the same method as the api/manifestations/{idm}/tickets/{idt} )
  • Save one ticket for one manifestation and user
  • Edit one ticket
  • Delete one ticket
  • Find all comments for one user
  • Find one comment (it can call the same method as the api/manifestations/{idm}/comments/{idc} )
  • Save one comment for one manifestation and user
  • Edit one comment
  • Delete one comment

Adding new Manifestation for Salesman

  • Add a component for adding new Manifestation
  • Make sure no manifestation takes place at the same time on the same place.
  • Manifestation status should be set to Inactive when created. Admin can change it later to active.

Add DTO objects

Make initial DTO objects that are needed for communication with the frontend

  • Add equivalent DTO classes for the model
  • Add search parameters DTOs
    • Manifestation Search DTO
    • Ticket Search DTO
    • User Search DTO
  • Add validation method to DTOs where needed

Create config file

Config file could contain things like port, number of results per page (if pagination is implemented) etc.
Add new task for each option as needed.

  • Port number
  • Number of results per page returned (Pagination)

Add Json Web Tokens

  • Start using JSON web tokens for authorization.
  • Modify UserDTO so it contains the attribute String JWT
  • Add support class for conversion from User to UserDTO that contains String jwt
  • Save logged in user that contains JWT in local storage
  • Create a support method for sending JWT with each request.

Create Login/Register form

Implement a full login/register form on the frontend

  • Login Form
  • Login Axios
  • Register Form
  • Register Axios

Modify test data

  • Connect manifestations and users with tickets
  • Connect manifestations and users with comments
  • Save all remaining entities in files

Add Search, Sort and Filter for Customer Tickets

  • Implement search functionality for customer tickets
  • Implement sort functionality for customer tickets
  • Implement filter functionality for customer tickets
  • Implement these functionalities for salesman tickets
  • Implement these functionalities for admin when viewing all tickets
  • Implement these functionalities for customer when viewing all his tickets

Create a Login functionality

Create a regular login and logout

  • Implement logic for registration
  • Implement logic for Login
  • Implement logic for Logout
  • Put login validation in before() method for certain paths

Add Ticket Reservation by Customers

  • Add reservation functionality for any active manifestation that has available tickets
  • Allow for multiple tickets to be reserved by one customer
  • Add a confirmation page that asks the user to confirm the order
  • Show total price and the number of tickets before the reservation is confirmed
  • Calculate the discount based on the customer Type
  • Decrease the number of available seats in the manifestation

Create profile page

  • Enable viewing of user profile
  • Enable editing of user profile
  • Create a separate page for changing passwords

Create Service layer

Create interfaces for the required classes, and implement their functionalities. Functionalities can be found in project specification.

  • Create service interfaces
  • Implement service interfaces (can be done in memory in local collections until saving and loading in persistence layer is implemented)

Detailed View for Manifestation

  • Selecting an manifestation should take you to the detailed view for that manifestation
  • Make a detailed view component for the manifestation
  • Make sure the image is displayed
  • Show rating if it exists (if the manifestation is finished)
  • Show comments if they exist (if the manifestation is finished)
  • Add basic location information for now in the format, street number , city , zip code

Add Comments by Customers

  • Add functionality to leave a comment by Customer if the ticket is RESERVED and manifestation has ENDED
  • Add option to rate the manifestation
  • Make sure one customer can only add one comment and rating per manifestation, even if he has multiple tickets for that manifestation.
  • Set approved status on creating to PENDING
  • Make sure only approved comments are shown on the manifestation detailed view

Create Methods for files persistence

Methods for saving and loading files in JSON format should be created. Gson library can be used for this.

  • Create methods for saving JSON files
  • Create methods for loading JSON files
  • Design persistence layer and how it should be used with service layer
  • Add libraries used in the project

Add support for saving images in files

Don't save images in base64 encoded string. Decode the image and save it in the adequate folder.

  • Image in model should contain a path to the image on the backend
  • Image could be encoded in base64 format and forwarded inside a DTO object for manifestation. (alternative is to send another separate request for image)

Create a basic Vue frontend

Add basic files for Vue frontend that will display something simple like all manifestations.

  • Add vue files and basic structure
  • Create a method that will call rest service and display manifestations
  • Display manifestations as simple tables for now
  • Add bootstrap

Redesign model

Implement changes in code from the class model design

Learn how to use GSON library

Learn how to use GSON library to serialize objects and de-serialize them properly. If one member figures it out, other member will learn really quickly how it is done.

  • Marko - Learn how to serialize objects with GSON and save them to file
  • Marko - Learn how to de-serialize objects with GSON and load from the file
  • Milos - Learn how to serialize objects with GSON and save them to file
  • Milos - Learn how to de-serialize objects with GSON and load from the file

Cancel Ticket Reservation

  • Add option for canceling the reservation (at least 7 days before the event)
  • Increase the number of available seats for the manifestation.
  • Reduce the number of points for the customer based on the formula
    Formula for reducing points is: reduce_by = price_of_ticket/1000*133*4

Redesign the persistance layer

  • Replace static collections with regular collections
  • Separate each collection into DAO object
  • Have one class that is responsible for loading all the collections (it should have a reference to every DAO)
  • Forward these collections to the service classes constructors where they are needed

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.