{"id":23640826,"url":"https://github.com/tn1ck/bachelor-thesis","last_synced_at":"2026-05-09T04:31:11.593Z","repository":{"id":150042839,"uuid":"103045247","full_name":"TN1ck/bachelor-thesis","owner":"TN1ck","description":"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.","archived":false,"fork":false,"pushed_at":"2017-09-11T09:19:49.000Z","size":45864,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-19T12:14:44.255Z","etag":null,"topics":["bachelor-project","bachelor-thesis","data-visualisation","latex","layout-engine","react"],"latest_commit_sha":null,"homepage":"https://bachelor-tom-nick.herokuapp.com","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TN1ck.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-09-10T16:43:13.000Z","updated_at":"2017-09-12T10:33:02.000Z","dependencies_parsed_at":"2023-04-04T20:37:25.133Z","dependency_job_id":null,"html_url":"https://github.com/TN1ck/bachelor-thesis","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/TN1ck/bachelor-thesis","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TN1ck%2Fbachelor-thesis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TN1ck%2Fbachelor-thesis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TN1ck%2Fbachelor-thesis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TN1ck%2Fbachelor-thesis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TN1ck","download_url":"https://codeload.github.com/TN1ck/bachelor-thesis/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TN1ck%2Fbachelor-thesis/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32807144,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-08T08:22:46.396Z","status":"online","status_checked_at":"2026-05-09T02:00:06.633Z","response_time":123,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bachelor-project","bachelor-thesis","data-visualisation","latex","layout-engine","react"],"created_at":"2024-12-28T09:52:09.831Z","updated_at":"2026-05-09T04:31:11.588Z","avatar_url":"https://github.com/TN1ck.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Infoboard\n\n## What is this?\n\nThis is my bachelor thesis, which I wrote in 2015. I finally came around to adjust some small things to open source it.\nBecause this project used some internal backend services, the application shown here is not complete, but you should get an idea.\nWhen I have time I will try to replicate the internal backend services with reddit.\n\nCurrently not working:\n\n* No authentication, you can simply login with every username you want\n* Favouriting and voting are not persisted\n\nNice things for the future:\n* Update the used packages\n* Typescript\n* Build the assets on the server instead of commiting them\n* CI\n\nFor more information, you can read my BA which can be found in tex/thesis.pdf. It's in german though.\n\n## Setup\n\n1. install node.js and npm. on osx with brew via: `brew install npm`\n2. (install mysql, this is not required but recommended)\n\n### Frontend\n\n#### Developer Build\n\nIn the `infoboard/frontend` directory:\n\n1. `npm install`\n2. `npm start`\n\nThis will make the site available at `http://localhost:3000`.\n\n#### Production Build\n\nThe optimized production-build can be created like this:\n\n\n1. 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\n1. `npm install` (if not done previously)\n2. `node webpack-build`\n2. `rm -rf dist`\n2. `mkdir dist \u0026\u0026 cp index.html ./dist \u0026\u0026 mv build ./dist/build`\n\nThis will create a folder named `dist` where all relevant files are put into.\nCurrently the backend is able to serve the static-files, if you haven't changed the project-structure it should\nwork if you start the backend. To deploy it independently, simple copy the dist-directory\nonto a file server.\n\nBefore building for production, you must set `settings.SERVER_URL`.\nIt can be found in `infoboard/frontend/scripts/settings.js`.\nThis settings specifies how the frontend will communicate with the backend.\n\n### Backend\n\nIn the `infoboard/backend` directory:\n\n1. `npm install`\n2. if you use mysql you must create a user and a database:\n```\nmysql -uroot\nCREATE DATABASE infoboard;\nCREATE USER 'infoboarduser'@'localhost' IDENTIFIED BY 'dai2015';\nGRANT ALL PRIVILEGES ON infoboard.* To 'infoboarduser'@'localhost' IDENTIFIED BY 'dai2015';\nFLUSH PRIVILEGES;\n```\n`infoboard`, `infoboarduser` and `dai2015` are the current default settings.\nAnd can be changed as needed in the `config`-directory.\n3. Execute `node commands/sync.js` to create the tables based on the specified model (to be found in `/models`) and delete all data.\n4. additionally fill the database with mock-data: `node commands/fill.js`\n5. `npm start`\n\nConfiguration of the backend is done via the files in the `config`-directory.\n\nThe server will locally listen to port `4000`. You need to make it public\navailable using servers like apache or nginx. The public-URL must conform with `settings.SERVER_URL`\nset in `infoboard/frontend/scripts/settings.js`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftn1ck%2Fbachelor-thesis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftn1ck%2Fbachelor-thesis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftn1ck%2Fbachelor-thesis/lists"}