Code Monkey home page Code Monkey logo

csc309-a5's Introduction

CSC309-A5

  • After installing the required modules by running “npm install”, run the server with “node server.js”. You don't have to start the database as it is already running in the cloud.

  • The server starts listening on the port 3000. Go to your browser and go to the URL "localhost:3000"

  • After registering or signing in with your account or through Google (redirects you to a Google website to get user permission) or Minecraft, you have the options of listing the available servers, seeing the user list, looking at other profiles or editing your account to give more information about yourself.

  • In the server list page, you can search servers, sort them according to their names, maps, players etc.

  • Also users can see the recommended servers listed with ranks, based on their likes. Servers with higher ranks, are more likely to be the users preference.

  • You can also filter them by typing into the search box on the upper right corner or into the fields under the list.

  • From the menu at the upper left corner, you can choose the number of servers to view per page.

  • Once you go into a server page, you can see who is online, a list of plugins that the server has, information about the server (version, number of players etc.), and a dynamic map of the server which also displays each player's location on it.

  • You can also write a comment as well as see other peoples comments.

  • If you'd like to register your own server, go to the create server page, just enter the ip, and the website will collect the server information and create a page for it. If the port is not entered, it sets it to default which is 25565.

  • Once you are done creating/viewing servers, you can logout from the drop down menu at the upper right corner with your username written on it.

  • If you log in as an admin, you can delete servers, see user information, and promote users. Only the superadmin can demote users.

  • Admins can see more detailed information about the users, such as the device they logged in from, their login locations and times, their ips, and pages users visit.

  • The website is accessible at: https://infinite-cove-8574.herokuapp.com/

  • Our video can be found at https://youtu.be/1PVSkfkBR9E

csc309-a5's People

Contributors

ytaben avatar acalza avatar rpolyano avatar umutakkaya avatar

Stargazers

Nick Fn Blum avatar  avatar  avatar  avatar

Watchers

James Cloos avatar  avatar Candice Lin avatar  avatar  avatar Nick Fn Blum avatar

csc309-a5's Issues

Registration

  • Implement Google Passport authentication
  • Integrate with Minecraft accounts Optional

Test everything

- Login
    - Login with various accounts (Minecraft and Google)
    - Google - deny permission
- Add server
    - Long names
    - Blank names
    - Invalid IPs [U]
    - Unqueryable IPs [U]
- Server page
    - Comment persistance
    - Rating persistance
- All pages with ids as URL params:
    - pass a bad id (like abcdef) 

If invalid IP gets entered into create server bad things happen

If you try to query an invalid ip (like 'asdasdasd')
then somehow, by some sorcery I do not understand, the callback for query.connect in
server-info.stat_server gets run twice. server-updater.server-info.stat_server runs once, but
somehow query.connect's callback runs two times and thus runs the stat_server callback twice causing problems.

Someone please investigate. Debugger may be required. It might be that query.connect auto retries for some reason (although briefly going over mcquery's code for this it does not seem it does).

Server page

The server page will be a get request when you click on one of the tables, and redirect you to a new page (Calling getServer/:ip_route) to get the model

A r eport.pdf f ile that describes the following:

A s e c t i o n t h a t i n c l u d e s t h e t i t l e o f y o u r p r o j e c t , y o u r t e a m i n f o r m a t i o n ( n a m e and CDF of each member) and a brief description of your project (within sharing economy space).
A sectiont hat includes the detailed design of your application. This section must include the following items:
i. A high-level view of your software (i.e., not MVC or N-tier, different section of your system).
ii. The description of all these different sections of your system and how they interact with one another.
iii. The list of pages and UI elements of your project.
A section that explains how you have taken care of security vulnerability and how you have tested it in your application. If you use any framework that take care of those, describe that too.
A section describing how much performance you have improved after applying optimization techniques.
A section that Includes a youtube link o f a three minutes video demo of your application(provide username and password if it private).
Anything else you want to include about your project!

get all servers (route) /getAllServers

You'll be simply using serverDB.find({}, function(err, servers){ ...}) Fairly straight forward, and just return all the servers in the DB.

Make a brand new route file for it.

Server route to get a specific server model

The server route should be /getServer/:ip_port which would return the server port (This will make our API stronger)
so the ip_port is a param, use req.body.param to get the parameters

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.