-
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 Introduction
csc309-a5's People
csc309-a5's Issues
Mocha/testing
Registration
- Implement Google Passport authentication
- Integrate with Minecraft accounts Optional
comment store date and user
Add more things to performance and security - low priority
They will be looking for shit from these:
http://www.cs.toronto.edu/~mashiyat/csc309/Tutorial/Performance.pdf
http://www.cs.toronto.edu/~mashiyat/csc309/Lectures/Security11.pdf
We should try to find things that are quick to add, and toss them in
Code refactoring
Server view page table headers/filters are gone again
Merge getServer into server route
Why is this a thing AGAIN
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)
documentation
read me file which clearly states the instruction of how to run the application.
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).
Proper password serialization
Use bcrypt its very easy
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
Server Recommendation
Develop front end of the project
All the basic html, beautify it from the back end.
Like system
regex expression to eliminate Mojangs colour coding characters
When saving the model in 'createServer.js' fix the name so it ignores the Mojangs Colour coding character as Roman mentioned.
Roman"
This regex will sdtrip it:
\u00A7[0-9a-fk-r]/gi
The regex is \u00A7[0-9a-fk-r] and g and i are flags
We do a regex replace of that with "" and we are good to go"
reference on regex flags for reference https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/RegExp
Comment system
Title
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!
UI for likes and recommendations
Title
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.
Fix the issue
get_info from server
do heroku
Change routes to match our RESTful structure (Minor)
- for example, /servers is now changed to server/list to list al the servers
- to be updated when I find out more about the other routes
"Create server" for a registered user
- Have a registration for server that conforms to minecraft policies
Duplicate object ID's when user likes twice on same page
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
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.