school-of-tech

module
v0.0.0-...-0b688d9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 29, 2016 License: MIT

README

School of Tech

My 2016 side project. My goal is to incorporate the material I learned in each of my computer science classes at UW in some part of the development of the game.


A game about running a computer science and engineering (CSE) department. You are the department chair and your job is to make your CSE department as successful as possible by completing the missions.

Screenshots

TODO 2-4 pictures of the game with descriptions

Gameplay

TODO description of how you play

Computer Science classes I've taken

(excluding the beloved Accelerated [Honors] Advanced Calculus series):

  • CSE143X - Computer Programming II: ???
  • CSE311 - Foundations of Computing I: ???
  • CSE312 - Foundations of Computing II: ???
  • CSE331 - Software Design & Implementation: ???
  • CSE332 - Data Abstractions: ???
  • CSE341 - Programming Languages: Javascript, Go
  • CSE351 - HW/SW Interface: ???
  • CSE390 - Leadership Seminar: ???
  • CSE401 - Compiler Construction: Creating an DSL for Isometric 3D graphics
  • CSE421 - Algorithms: ??
  • CSE444 - Database Internals: Postgres setup
  • CSE446 - Machine Learning: ???
  • CSE451 - Operating Systems: ???
  • CSE452 - Distributed Systems: Learning Go
  • CSE454 - Advanced Internet and Web Services: ???
  • CSE461 - Computer Networks: ???
  • CSE473 - Artificial Intelligence: ???
  • CSE481 - Sound Capstone: ???
  • CSE484 - Computer Security: bcrypt
  • CSE495 - Facebook Open Academy: socket.io

Ideas

  • Budget
    • Free food for students
    • Coffee shop
    • Teacher salary
    • Student tuition
    • Buy TA/Professor
  • Curriculum
    • Designing classes
    • Make specialty classes, makes students really good at particular area, make college a specialty in ML (i.e.)
  • Student Happiness
    • Classes too big
    • Can't find classes interesting
    • Money
    • Hunger
    • Textbooks
  • Teacher happiness level (unhappy at Stanford)
    • Aligns with interest
    • Office hours
    • Average distance from coffee machine
  • Random
    • Ziplines
    • Drones
    • Host hackathons
  • Message board
    • Updates about your department
  • Mission/Secenerio
    • Measure internships/fulltime
    • Teaching wrong thing
    • Goals
      • Become top ranked
      • Every year you get a report card (money graph, rank, happiness)
  • Missions
    1. Grow department from 0 to 50 students
    2. Design a curriculum. Add 5 new courses and 2 new professors
    3. Research: Getting grant money/Convince new professors to come to your school
    4. Food oriented, working long hours, all restaurants far away, people unhappy, so place coffee machines and food, keep healthy,nap pods, see grad students sleeping on couches, create social events, happy hours
    5. Career Fair, not exciting tech companies come, but then popular ones come
    6. Build another building (middle ranked college, lots want to apply, want to build another building, how do you fundraise, hire teachers)
    7. 2 buildings exist, but how to keep connected
    8. Become #1 CSE department
  • Research
    • Find new tools
    • Get $$ grants
    • Popularity
    • Undergrads learn things (not productive)
  • Building the deparment infrastructure
    • Atrium
    • Bathrooms (Shower)
    • Coffeebar
    • Grad Labs (too many grads in one room = unhappy)
    • Professor Office
    • Microkitchen/SnackOverflow
  • People
    • Professors walk slower

Technology

  • Go - server
    • Good for many concurrent clients
  • React - frontend UI
    • Redux - State Manager
    • Router - Routing
    • Flux - Architecture
  • Postgres - database
    • gorm - ORM
  • Iso.js - graphics
  • Webpack - build system

Build

First create an .env file for environment variables

DATABASE_URL=postgres://username:password@host:port/path
PORT=5000

Use package.json's scripts for all our commands, even for Go code. Run npm run to see all available commands.

Locally

Server (1/2)

Run:

go get ./school-of-tech && heroku local
# or
PORT=5000 go run ./school-of-tech/*.go
# or
npm start
Client (2/2)

Run:

npm run dev

Remotely

Deploy

First time setup:

heroku addons:create heroku-postgresql:hobby-dev
heroku buildpacks:add heroku/go heroku/nodejs

(You may want to change the order of the buildpacks.)

Deploy to heroku:

npm run deploy

Made by Grant Timmerman

Directories

Path Synopsis
Godeps
_workspace/src/github.com/Sirupsen/logrus
Package logrus is a structured logger for Go, completely API compatible with the standard library logger.
Package logrus is a structured logger for Go, completely API compatible with the standard library logger.
_workspace/src/github.com/golang/go/src/pkg/fmt
Package fmt implements formatted I/O with functions analogous to C's printf and scanf.
Package fmt implements formatted I/O with functions analogous to C's printf and scanf.
_workspace/src/github.com/googollee/go-socket.io
go-socket.io is a server implementation of socket.io in golang.
go-socket.io is a server implementation of socket.io in golang.
_workspace/src/github.com/gorilla/context
Package context stores values shared during a request lifetime.
Package context stores values shared during a request lifetime.
_workspace/src/github.com/gorilla/mux
Package mux implements a request router and dispatcher.
Package mux implements a request router and dispatcher.
_workspace/src/github.com/gorilla/securecookie
Package gorilla/securecookie encodes and decodes authenticated and optionally encrypted cookie values.
Package gorilla/securecookie encodes and decodes authenticated and optionally encrypted cookie values.
_workspace/src/github.com/gorilla/websocket
Package websocket implements the WebSocket protocol defined in RFC 6455.
Package websocket implements the WebSocket protocol defined in RFC 6455.
_workspace/src/github.com/jinzhu/inflection
Package inflection pluralizes and singularizes English nouns.
Package inflection pluralizes and singularizes English nouns.
_workspace/src/github.com/labstack/echo
Package echo implements a fast and unfancy micro web framework for Go.
Package echo implements a fast and unfancy micro web framework for Go.
_workspace/src/github.com/lib/pq
Package pq is a pure Go Postgres driver for the database/sql package.
Package pq is a pure Go Postgres driver for the database/sql package.
_workspace/src/github.com/lib/pq/oid
Package oid contains OID constants as defined by the Postgres server.
Package oid contains OID constants as defined by the Postgres server.
_workspace/src/github.com/mattn/go-isatty
Package isatty implements interface to isatty
Package isatty implements interface to isatty
_workspace/src/github.com/parnurzeal/gorequest
Package gorequest inspired by Nodejs SuperAgent provides easy-way to write http client
Package gorequest inspired by Nodejs SuperAgent provides easy-way to write http client
_workspace/src/golang.org/x/crypto/bcrypt
Package bcrypt implements Provos and Mazières's bcrypt adaptive hashing algorithm.
Package bcrypt implements Provos and Mazières's bcrypt adaptive hashing algorithm.
_workspace/src/golang.org/x/crypto/blowfish
Package blowfish implements Bruce Schneier's Blowfish encryption algorithm.
Package blowfish implements Bruce Schneier's Blowfish encryption algorithm.
_workspace/src/golang.org/x/net/context
Package context defines the Context type, which carries deadlines, cancelation signals, and other request-scoped values across API boundaries and between processes.
Package context defines the Context type, which carries deadlines, cancelation signals, and other request-scoped values across API boundaries and between processes.
_workspace/src/golang.org/x/net/publicsuffix
Package publicsuffix provides a public suffix list based on data from http://publicsuffix.org/.
Package publicsuffix provides a public suffix list based on data from http://publicsuffix.org/.
_workspace/src/golang.org/x/net/websocket
Package websocket implements a client and server for the WebSocket protocol as specified in RFC 6455.
Package websocket implements a client and server for the WebSocket protocol as specified in RFC 6455.
_workspace/src/golang.org/x/sys/unix
Package unix contains an interface to the low-level operating system primitives.
Package unix contains an interface to the low-level operating system primitives.
db
ws

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL