Skip to content

Commit 9bbbf90

Browse files
committed
Initial code commit
1 parent 989ca3d commit 9bbbf90

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+215895
-2
lines changed

.gitignore

+3
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
# MacOS
2+
.DS_Store
3+
14
# Logs
25
logs
36
*.log

Procfile

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
web: npm start

README.md

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,4 @@
1-
# construct
2-
Tapster robot simulator
1+
# The Construct
2+
###Tapster Robot Simulator
3+
4+
A web-based 3D simulator for Tapster robots

app.js

+51
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
var createError = require('http-errors')
2+
var express = require('express')
3+
var path = require('path')
4+
var helmet = require('helmet')
5+
var cookieParser = require('cookie-parser')
6+
var logger = require('morgan')
7+
8+
// Get routes
9+
var indexRouter = require('./routes/index')
10+
var constructRouter = require('./routes/construct')
11+
12+
13+
// Server set-up
14+
var app = express()
15+
// app.use(helmet())
16+
app.use(
17+
helmet({
18+
contentSecurityPolicy: false,
19+
})
20+
)
21+
22+
// View engine setup
23+
app.set('views', path.join(__dirname, 'views'))
24+
app.set('view engine', 'ejs')
25+
26+
app.use(logger('dev'))
27+
app.use(express.json())
28+
app.use(express.urlencoded({ extended: false }))
29+
app.use(cookieParser())
30+
app.use(express.static(path.join(__dirname, 'public')))
31+
32+
app.use('/', constructRouter)
33+
app.use('/yo', indexRouter)
34+
35+
// catch 404 and forward to error handler
36+
app.use(function(req, res, next) {
37+
next(createError(404))
38+
});
39+
40+
// error handler
41+
app.use(function(err, req, res, next) {
42+
// set locals, only providing error in development
43+
res.locals.message = err.message
44+
res.locals.error = req.app.get('env') === 'development' ? err : {}
45+
46+
// render the error page
47+
res.status(err.status || 500)
48+
res.render('error')
49+
});
50+
51+
module.exports = app

bin/www

+90
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
#!/usr/bin/env node
2+
3+
/**
4+
* Module dependencies.
5+
*/
6+
7+
var app = require('../app');
8+
var debug = require('debug')('construct:server');
9+
var http = require('http');
10+
11+
/**
12+
* Get port from environment and store in Express.
13+
*/
14+
15+
var port = normalizePort(process.env.PORT || '3000');
16+
app.set('port', port);
17+
18+
/**
19+
* Create HTTP server.
20+
*/
21+
22+
var server = http.createServer(app);
23+
24+
/**
25+
* Listen on provided port, on all network interfaces.
26+
*/
27+
28+
server.listen(port);
29+
server.on('error', onError);
30+
server.on('listening', onListening);
31+
32+
/**
33+
* Normalize a port into a number, string, or false.
34+
*/
35+
36+
function normalizePort(val) {
37+
var port = parseInt(val, 10);
38+
39+
if (isNaN(port)) {
40+
// named pipe
41+
return val;
42+
}
43+
44+
if (port >= 0) {
45+
// port number
46+
return port;
47+
}
48+
49+
return false;
50+
}
51+
52+
/**
53+
* Event listener for HTTP server "error" event.
54+
*/
55+
56+
function onError(error) {
57+
if (error.syscall !== 'listen') {
58+
throw error;
59+
}
60+
61+
var bind = typeof port === 'string'
62+
? 'Pipe ' + port
63+
: 'Port ' + port;
64+
65+
// handle specific listen errors with friendly messages
66+
switch (error.code) {
67+
case 'EACCES':
68+
console.error(bind + ' requires elevated privileges');
69+
process.exit(1);
70+
break;
71+
case 'EADDRINUSE':
72+
console.error(bind + ' is already in use');
73+
process.exit(1);
74+
break;
75+
default:
76+
throw error;
77+
}
78+
}
79+
80+
/**
81+
* Event listener for HTTP server "listening" event.
82+
*/
83+
84+
function onListening() {
85+
var addr = server.address();
86+
var bind = typeof addr === 'string'
87+
? 'pipe ' + addr
88+
: 'port ' + addr.port;
89+
debug('Listening on ' + bind);
90+
}

package.json

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
{
2+
"name": "tapster-construct",
3+
"version": "0.0.1",
4+
"description": "Tapster robot simulator",
5+
"author": "Jason Huggins",
6+
"license": "MIT",
7+
"private": true,
8+
"scripts": {
9+
"start": "node ./bin/www"
10+
},
11+
"keywords": [
12+
"tapster",
13+
"robot",
14+
"simulator",
15+
"threejs"
16+
],
17+
"dependencies": {
18+
"cookie-parser": "~1.4.4",
19+
"debug": "~2.6.9",
20+
"ejs": "~2.6.1",
21+
"express": "^4.17.1",
22+
"helmet": "^4.1.1",
23+
"http-errors": "~1.6.3",
24+
"morgan": "~1.9.1"
25+
},
26+
"devDependencies": {
27+
"coffeescript": "^2.5.1"
28+
},
29+
"engines": {
30+
"node": "14.x"
31+
}
32+
}

0 commit comments

Comments
 (0)