Code Monkey home page Code Monkey logo

game-store's Introduction

CS-C3170 - Web Software Development

๐Ÿ†• โš ๏ธ Please go to the UPDATE.md file for the latest details about the project โ€ผ๏ธ.

WSD Autum 2018 Project - Game Store

Members:

  • Timur Kartaev 727642
  • Satenik Hovsepyan 727561
  • Bruno Duarte 727396

Overview

Features to implement
  1. Authentication
  2. Basic player functionalities
  3. Basic developer functionalities
  4. Game/service interaction
  5. Quality of Work
  6. Non-functional requirements
Brief explanation on how to implement the previous features
  1. Register, login and reset the password is already implemented in Django and we just plan to use them.
  2. We are going to create models to represent the games, purchases, and the search feature and also built in constraints on what each user can play according to their purchases.
  3. We are going to create a model "profile" to extend Django's user model and represent Developers/Players. Developers can add or remove games from their shelf.
  4. We are going to use messages for communication between the game and the game service.
  5. All code is going to be documented and separated in files to accordingly apply the DRY paradigm.
Extra features to implement
  1. Mobile Friendly
  2. Social media sharing
  3. RESTful API
  4. 3rd party login
  5. Save/load and resolution feature
  6. Own game
Brief explanation on how to implement the previous features
  1. We plan to use bootstrap for the mobile friendly components
  2. We plan to use OpenGraph.
  3. Different views for providing the REST service.
  4. We are going to use the third party app (python-auth) for Social Media login
  5. We are going to store the state of the game in a model
  6. We are going to develop a very basic game of guessing cards/values.

Note: We plan to start implementing extra features in aforementioned order and implement as many of them as we have time for using our best effort.

Models and views needed (draft)

Models

  • Profile
    • role = CharField
    • games = ManyToMany(Game)
  • Category
    • title = CharField
    • slug = SlugField
  • Game
    • title = CharField
    • url = URLField
    • price = PositiveInegerField
    • category = ForeignKey(Category)
    • developer = ForeignKey(User)
    • status = CharField
    • is_deleted = BooleanField
  • Order
    • code = UUID4Field
    • user = ForeignKey(User)
    • cart = ForeignKey(Cart)
    • status = CharField
    • total_amount = PositiveIntegerField
  • Cart
    • user = ForeignKey(User)
    • status = CharField
    • created = DateTimeField
  • OrderItem
    • game = ForeignKey(Game)
    • cart = ForeignKey(Cart)
    • price = PositiveIntegerField
    • amount = PositiveIntegerField
  • Payments
    • order = ForeignKey(Order)
    • status = CharField
  • GameScore
    • game = ForeignKey(Game)
    • user = ForeignKey(User)
    • score = IntegerField
  • GameState
    • game = ForeignKey(Game)
    • user = ForeignKey(User)
    • state = JSONField
    • saved = DateTimeField

Views

Authentication
  • LoginView
  • RegisterView
  • PasswordResetView
Basic player functionalities
  • GameListView
  • GamePlayView
  • CartView
  • CheckOutView
  • OrderFinishedView
  • ProfileView
Basic developer functionalities
  • GameListView
  • CreateGameView
  • EditGameView
  • RemoveGameView
  • SaleStatisticsView
Game/service interaction
  • SaveUserScoreView
  • ScoreDashboardView
  • SaveGameStateView
  • LoadGameStateView
RESTful API
  • GameListView
  • HighScoresView
  • StatisticsView

Planification

Strategy on the group for getting things done

  1. We plan to have regular meetings, at least once a week to split tasks and assign features.
  2. We would use GDrive for collaborative common documents and to eventually use them as a reference in our day-to-day tasks.
  3. We would use Aalto Gitlab to keep track of our project and source code.

Implementation order and timetable (draft)

  • Week 0 is the week 52 from 2018
  • Week 1 corresponds to the week 1 from 2019
Timetable (draft)
Week 0 is the week 52 from 2018, Week 1 corresponds to the week 1 from 2019
Week and Dates Tasks
Week 0 24-30.12
  • Models creation
  • Testing initial deployment to Heroku
Week 1 01-06.01
  • Authentication, register as a player and developer with email confirmation and reset password
Week 2 07-13.01
  • Browse of games, the store itself where the games can be bought.
  • Including the search of games, and games should have a category.
  • Inventory of games acquired by a given player
Week 3 14-20.01
  • Display the highscores of a given game.
  • Buy games through the payment gateway.
Week 4 21-27.01
  • The view for playing the game, and actually play the game.
  • Add and remove games to the store, modify price, and other details.
  • Sales statistics, visualization for that developer.
  • Partial deployment to Heroku
Week 5 28-31.01
  • Message service between the game and the store, user related saved games.
  • Saving the state of a given game for a given player.
  • Loading the state of a given game for a given player.
Week 6 04-10.02
  • Adding the RESTful capabilities to the existing models.
  • Implementation of sharing through social media.
  • Creation of a self-made game to deploy to the Store.
Week 7 11-17.02
  • Bug fixes
Week 8 18-19.02
  • Documentation.
  • Final deployment and delivery to Heroku.

game-store's People

Contributors

ssruno avatar timurkartaev avatar bdfintechpy avatar

Stargazers

Satenik Hovsepyan avatar

Watchers

Satenik Hovsepyan avatar

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.