Giter VIP home page Giter VIP logo

steamdbsystem's Introduction

Steam DB System

Required

  • MySQL
  • Node.js
  • Jupyter (If you want to generate data yourself)

Repo Layout

  • client/: FrontEnd of the project
  • server/: BackEnd of the project. SQL commands used in backends are mostly in routes/. Loading database to the project is in models/index.js
  • SQL/: All you need on how to create and load our sample/production database, as well as test-sample.sql, test-production.sql and their outputs. We are using steamdb.json as our data source
  • database/: Contains the data we use (toy & production)

Project Startup

!! If first time starting this project, please run ./Setup.sh which sets up the dependency, user privilege and schema !!

Under the project directory, run ./Run.sh to start up both backend and frontend. The web will pop up for you.

Project Features that (Currently) Supported

  • Posts(Review)
  • Posts Deletion (Must be owner of the post)
  • Comments for the Posts(Review) (Must Login)
  • Comments Deletion (Must be owner of the comments)
  • Different Games Display Category
  • Game Details Page
  • Game Details Page showing its reviews
  • Profile Page for Users
  • Profile Page displaying owned games
  • Profile Page displaying reviews the user posted
  • User Login
  • User Register
  • Like/Unlike a Post
  • Password protection
  • JWT Authentication

To Generate SQL Data

See the two jupyter notebooks in directory database/.

steamdbsystem's People

Contributors

edward-j-xu avatar andrwyl avatar kevinuw114514 avatar yukidance avatar 1030852813 avatar bobliu0 avatar

Watchers

 avatar  avatar

steamdbsystem's Issues

Mark Game as Bought

eg.

This feature allows a user to specify that they own a particular game. The database is updated to store this relationship. Currently, there is no front-end design to support this feature yet, but will certainly be done in the future.

SQL Query:

insert into own
values ('bob6', 112);
select * from own where username = 'bob6';

Output:

1679170253151

Import Production Dataset

Import the dataset into project server. How to generate the “production” dataset and load it into your database. Do not submit the production dataset itself through if it is too big; instead, submit the URL where you download/scrape the raw data (if applicable), and the code that extracts and transforms (or generates) the production dataset. State which features have been implemented and state which files contain the implementation. We expect at least 3 features.

Search Filter

eg.

This feature allows any user to search through all the games in the database by language as well as by substring (so a search of “Fin” will result in “Final Fantasy”) and ordered by rating descending. Currently, there is no front-end design to support this feature yet, but will certainly be done in the future.

SQL Query:

select name, game_image, genre, language, rating
from game
where name like '%car%'
and language = 'English'
order by rating desc;

Output:
1679170040264

test-production.sql

A file test-production.sql containing the SQL statements you wrote for Task 8. You may wish to modify some queries to return only the top 10 result rows instead of all result rows (there might be lots for large datasets) and a file test-production.out showing the results of running test-production.sql over the production dataset.

Look up the data on all the games that a user owns

This feature allows a user to get an output of all the games they own, but also include the features additional attributes of the game like genre, language, rating. Currently, there is no front-end design to support this feature yet, but will certainly be done in the future.

SQL Query:

select name, game_image, genre, language, rating
from own, game
where own.gid = game.game_id
and own.username = 'bob6';

Output:

1679170310718

Update User Profile

eg.

This feature allows for a user to update his own profile’s attributes, such as language and age. The user table is updated to store these changes. Currently, there is no front-end design to support this feature yet, but will certainly be done in the future.

SQL Query:

update userA
set age = 21
where username = 'bob6';
update userA
set language = 'Mandarin'
where username = 'bob6';
select * from userA where username = 'bob6';

Output:

1679170107518

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.