GithubHelp home page GithubHelp logo

tn1ck / bachelor-thesis Goto Github PK

View Code? Open in Web Editor NEW
3.0 2.0 0.0 44.79 MB

My bachelor thesis, written during 2015. It was developed as an internal dashboard to visualise search results, this repo holds a (semi) working version with reddit as its backend.

Home Page: https://bachelor-tom-nick.herokuapp.com

JavaScript 50.98% HTML 0.12% CSS 19.47% TeX 29.35% Shell 0.07%
react data-visualisation layout-engine latex bachelor-thesis bachelor-project

bachelor-thesis's Introduction

Infoboard

What is this?

This is my bachelor thesis, which I wrote in 2015. I finally came around to adjust some small things to open source it. Because this project used some internal backend services, the application shown here is not complete, but you should get an idea. When I have time I will try to replicate the internal backend services with reddit.

Currently not working:

  • No authentication, you can simply login with every username you want
  • Favouriting and voting are not persisted

Nice things for the future:

  • Update the used packages
  • Typescript
  • Build the assets on the server instead of commiting them
  • CI

For more information, you can read my BA which can be found in tex/thesis.pdf. It's in german though.

Setup

  1. install node.js and npm. on osx with brew via: brew install npm
  2. (install mysql, this is not required but recommended)

Frontend

Developer Build

In the infoboard/frontend directory:

  1. npm install
  2. npm start

This will make the site available at http://localhost:3000.

Production Build

The optimized production-build can be created like this:

  1. first make sure settings.js is configured correctly, normally you have to change the SERVER_URL, everytime you want to change a setting you have to rebuild
  2. npm install (if not done previously)
  3. node webpack-build
  4. rm -rf dist
  5. mkdir dist && cp index.html ./dist && mv build ./dist/build

This will create a folder named dist where all relevant files are put into. Currently the backend is able to serve the static-files, if you haven't changed the project-structure it should work if you start the backend. To deploy it independently, simple copy the dist-directory onto a file server.

Before building for production, you must set settings.SERVER_URL. It can be found in infoboard/frontend/scripts/settings.js. This settings specifies how the frontend will communicate with the backend.

Backend

In the infoboard/backend directory:

  1. npm install
  2. if you use mysql you must create a user and a database:
mysql -uroot
CREATE DATABASE infoboard;
CREATE USER 'infoboarduser'@'localhost' IDENTIFIED BY 'dai2015';
GRANT ALL PRIVILEGES ON infoboard.* To 'infoboarduser'@'localhost' IDENTIFIED BY 'dai2015';
FLUSH PRIVILEGES;

infoboard, infoboarduser and dai2015 are the current default settings. And can be changed as needed in the config-directory. 3. Execute node commands/sync.js to create the tables based on the specified model (to be found in /models) and delete all data. 4. additionally fill the database with mock-data: node commands/fill.js 5. npm start

Configuration of the backend is done via the files in the config-directory.

The server will locally listen to port 4000. You need to make it public available using servers like apache or nginx. The public-URL must conform with settings.SERVER_URL set in infoboard/frontend/scripts/settings.js.

bachelor-thesis's People

Contributors

tn1ck avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

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.