mirror of
				https://github.com/HabitRPG/habitica.git
				synced 2025-10-30 20:52:29 +01:00 
			
		
		
		
	Compare commits
	
		
			3 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 5e92901566 | ||
|  | 9bd034284a | ||
|  | b9a8fa13f7 | 
							
								
								
									
										17
									
								
								.babelrc
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								.babelrc
									
									
									
									
									
								
							| @@ -1,12 +1,9 @@ | ||||
| { | ||||
|   "presets": [ | ||||
|     [ | ||||
|       "@babel/preset-env", | ||||
|       { | ||||
|         "targets": { | ||||
|           "node": true | ||||
|         } | ||||
|       } | ||||
|     ] | ||||
|   "presets": ["es2015"], | ||||
|   "plugins": [ | ||||
|     ["transform-async-to-module-method", { | ||||
|       "module": "bluebird", | ||||
|       "method": "coroutine" | ||||
|     }] | ||||
|   ] | ||||
| } | ||||
| } | ||||
|   | ||||
| @@ -1,2 +0,0 @@ | ||||
| node_modules | ||||
| .git | ||||
| @@ -14,13 +14,17 @@ files: | ||||
|     owner: root | ||||
|     group: users | ||||
|     content: | | ||||
|       $(ls -td /opt/elasticbeanstalk/node-install/node-* | head -1)/bin/npm install -g npm@5 | ||||
|       $(ls -td /opt/elasticbeanstalk/node-install/node-* | head -1)/bin/npm install -g npm@3 | ||||
| container_commands: | ||||
|   01_makeBabel: | ||||
|     command: "touch /tmp/.babel.json" | ||||
|   02_ownBabel: | ||||
|     command: "chmod a+rw /tmp/.babel.json" | ||||
|   03_installGulp: | ||||
|   03_installBower: | ||||
|     command: "$NODE_HOME/bin/npm install -g bower" | ||||
|   04_installGulp: | ||||
|     command: "$NODE_HOME/bin/npm install -g gulp" | ||||
|   04_runGulp: | ||||
|   05_runBower: | ||||
|     command: "$NODE_HOME/lib/node_modules/bower/bin/bower --config.interactive=false --allow-root install -f" | ||||
|   06_runGulp: | ||||
|     command: "$NODE_HOME/lib/node_modules/gulp/bin/gulp.js build" | ||||
|   | ||||
| @@ -1,11 +0,0 @@ | ||||
| # top level config | ||||
| root = true | ||||
|  | ||||
| # all files | ||||
| [*] | ||||
| charset = utf-8 | ||||
| end_of_line = lf # Unix-style | ||||
| insert_final_newline = true | ||||
| indent_style = space | ||||
| indent_size = 2 | ||||
| trim_trailing_whitespace = true | ||||
| @@ -1,16 +1,28 @@ | ||||
| # Compiled and vendored files | ||||
| common/dist/ | ||||
| common/transpiled-babel/ | ||||
| coverage/ | ||||
| database_reports/ | ||||
| website/build/ | ||||
| website/transpiled-babel/ | ||||
| # Has its own linter | ||||
| website/client/ | ||||
| website/common/transpiled-babel/ | ||||
| dist/ | ||||
| dist-client/ | ||||
| apidoc_build/ | ||||
| content_cache/ | ||||
| node_modules/ | ||||
|  | ||||
| # Old migrations, disabled | ||||
| migrations/archive/* | ||||
| migrations/* | ||||
|  | ||||
| # The files in website/client/js should be moved out and browserified | ||||
| website/client/ | ||||
|  | ||||
| # Temporarilly disabled. These should be removed when the linting errors are fixed | ||||
| common/script/content/index.js | ||||
|  | ||||
| debug-scripts/* | ||||
| scripts/* | ||||
| tasks/*.js | ||||
| gulpfile.js | ||||
| Gruntfile.js | ||||
| newrelic.js | ||||
|  | ||||
| test/api-legacy/**/* | ||||
| test/common/simulations/**/* | ||||
| test/content/**/* | ||||
| test/server_side/**/* | ||||
| test/spec/**/* | ||||
|   | ||||
							
								
								
									
										10
									
								
								.eslintrc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								.eslintrc
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,10 @@ | ||||
| { | ||||
|   "extends": [ | ||||
|     "habitrpg/server", | ||||
|     "habitrpg/babel" | ||||
|   ], | ||||
|   "globals": { | ||||
|     "Promise": true, | ||||
|     "Set": false | ||||
|   } | ||||
| } | ||||
| @@ -1,6 +0,0 @@ | ||||
| module.exports = { | ||||
|   root: true, | ||||
|   extends: [ | ||||
|     'habitrpg/lib/node' | ||||
|   ], | ||||
| } | ||||
							
								
								
									
										11
									
								
								.github/CONTRIBUTING.md
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										11
									
								
								.github/CONTRIBUTING.md
									
									
									
									
										vendored
									
									
								
							| @@ -1,10 +1,10 @@ | ||||
| # Reporting Bugs | ||||
|  | ||||
| [Please see these instructions for reporting bugs](https://github.com/HabitRPG/habitica/issues/2760) | ||||
| [Please see these instructions for reporting bugs](https://github.com/HabitRPG/habitrpg/issues/2760) | ||||
|  | ||||
| # Pull Request | ||||
|  | ||||
| [Please see these instructions for adding a pull request](http://habitica.fandom.com/wiki/Using_Your_Local_Install_to_Modify_Habitica%27s_Website_and_API) | ||||
| [Please see these instructions for adding a pull request](http://habitica.wikia.com/wiki/Using_Habitica_Git#Pull_Request) | ||||
|  | ||||
| # Requesting a feature | ||||
|  | ||||
| @@ -12,9 +12,4 @@ Habitica uses [Trello](https://trello.com/b/EpoYEYod/habitica) to track feature | ||||
|  | ||||
| # Contributing Code | ||||
|  | ||||
| See [Contributing to Habitica](http://habitica.fandom.com/wiki/Contributing_to_Habitica#Coders_.28Web_.26_Mobile.29) | ||||
|  | ||||
| ## Issue Triage [](https://www.codetriage.com/habitrpg/habitica) | ||||
|  | ||||
| You can triage issues which may include reproducing bug reports or asking for vital information, such as version numbers or reproduction instructions. If you would like to start triaging issues, one easy way to get started is to [subscribe to habitrpg on CodeTriage](https://www.codetriage.com/habitrpg/habitica). | ||||
|  | ||||
| See [Contributing to Habitica](http://habitica.wikia.com/wiki/Contributing_to_Habitica#Coders_.28Web_.26_Mobile.29) | ||||
|   | ||||
							
								
								
									
										16
									
								
								.github/ISSUE_TEMPLATE.md
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										16
									
								
								.github/ISSUE_TEMPLATE.md
									
									
									
									
										vendored
									
									
								
							| @@ -1,19 +1,21 @@ | ||||
| [//]: # (Before logging this issue, please post to the Report a Bug guild from the Habitica website's Help menu. Most bugs can be handled quickly there. If a GitHub issue is needed, you will be advised of that by a moderator or staff member -- a player with a dark blue or purple name. It is recommended that you don't create a new issue unless advised to.) | ||||
| [//]: # (Before logging this issue, look through common problems at https://github.com/HabitRPG/habitrpg/issues If you find your issue there, read at least the first post to see if there is a workaround for you) | ||||
|  | ||||
| [//]: # (Bugs in the mobile apps can also be reported there.) | ||||
| [//]: # (Github is primarily used for reporting bugs. If you have a feature request, use "Help > Request a Feature" so that the feature request can be vetted by the larger Habitica community) | ||||
|  | ||||
| [//]: # (If you have a feature request, use "Help > Request a Feature", not GitHub or the Report a Bug guild.) | ||||
| [//]: # (To report a bug in one of the mobile apps, please report it in the correct repository. Android: https://github.com/HabitRPG/habitrpg-android, iOS: https://github.com/HabitRPG/habitrpg-ios) | ||||
|  | ||||
| [//]: # (For more guidelines see https://github.com/HabitRPG/habitica/issues/2760) | ||||
| [//]: # (For more guidelines see https://github.com/HabitRPG/habitrpg/issues/2760) | ||||
|  | ||||
| [//]: # (Fill out relevant information - UUID is found from the Habitia website at User Icon > Settings > API) | ||||
| ### General Info | ||||
| [//]: # (Fill out relevant information - UUID is found in Settings -> API) | ||||
| General Info | ||||
|   * UUID:  | ||||
|   * Browser:  | ||||
|   * OS:  | ||||
|  | ||||
| ### Description | ||||
| [//]: # (Describe bug in detail here. Include screenshots if helpful.) | ||||
| [//]: # (Describe bug in detail here. Include pictures if helpful.) | ||||
|  | ||||
|  | ||||
|  | ||||
| #### Console Errors | ||||
| [//]: # (Include any JavaScript console errors here.) | ||||
|   | ||||
							
								
								
									
										9
									
								
								.github/PULL_REQUEST_TEMPLATE.md
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								.github/PULL_REQUEST_TEMPLATE.md
									
									
									
									
										vendored
									
									
								
							| @@ -1,14 +1,13 @@ | ||||
| [//]: # (Note: See http://habitica.fandom.com/wiki/Using_Your_Local_Install_to_Modify_Habitica%27s_Website_and_API for more info) | ||||
| [//]: # (Note: See http://habitica.wikia.com/wiki/Using_Habitica_Git#Pull_Request for more info) | ||||
|  | ||||
| [//]: # (Put Issue # here, if applicable. This will automatically close the issue if your PR is merged in) | ||||
| Fixes put_#_and_issue_number_here | ||||
| [//]: # (Put Issue # or URL here, if applicable. This will automatically close the issue if your PR is merged in) | ||||
| Fixes put_issue_url_here | ||||
|  | ||||
| ### Changes | ||||
| [//]: # (Describe the changes that were made in detail here. Include pictures if necessary) | ||||
|  | ||||
|  | ||||
|  | ||||
| [//]: # (Put User ID in here - found on the Habitica website at User Icon > Settings > API) | ||||
|  | ||||
| [//]: # (Put User ID in here - found in Settings -> API) | ||||
| ---- | ||||
| UUID:  | ||||
|   | ||||
							
								
								
									
										198
									
								
								.github/workflows/test.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										198
									
								
								.github/workflows/test.yml
									
									
									
									
										vendored
									
									
								
							| @@ -1,198 +0,0 @@ | ||||
| name: Test | ||||
|  | ||||
| on: [push, pull_request] | ||||
|  | ||||
| jobs: | ||||
|   lint: | ||||
|     runs-on: ubuntu-latest | ||||
|     strategy: | ||||
|       matrix: | ||||
|         node-version: [12.x] | ||||
|     steps: | ||||
|     - uses: actions/checkout@v1 | ||||
|       with: | ||||
|         fetch-depth: 1 | ||||
|     - name: Use Node.js ${{ matrix.node-version }} | ||||
|       uses: actions/setup-node@v1 | ||||
|       with: | ||||
|         node-version: ${{ matrix.node-version }} | ||||
|     - run: cp config.json.example config.json | ||||
|     - name: npm install | ||||
|       run: | | ||||
|         npm ci | ||||
|       env: | ||||
|         CI: true | ||||
|     - run: npm run lint-no-fix | ||||
|   apidoc: | ||||
|     runs-on: ubuntu-latest | ||||
|     strategy: | ||||
|       matrix: | ||||
|         node-version: [12.x] | ||||
|     steps: | ||||
|     - uses: actions/checkout@v1 | ||||
|       with: | ||||
|         fetch-depth: 1 | ||||
|     - name: Use Node.js ${{ matrix.node-version }} | ||||
|       uses: actions/setup-node@v1 | ||||
|       with: | ||||
|         node-version: ${{ matrix.node-version }} | ||||
|     - run: cp config.json.example config.json | ||||
|     - name: npm install | ||||
|       run: | | ||||
|         npm ci | ||||
|       env: | ||||
|         CI: true | ||||
|     - run: npm run apidoc | ||||
|   sanity: | ||||
|     runs-on: ubuntu-latest | ||||
|     strategy: | ||||
|       matrix: | ||||
|         node-version: [12.x] | ||||
|     steps: | ||||
|     - uses: actions/checkout@v1 | ||||
|       with: | ||||
|         fetch-depth: 1 | ||||
|     - name: Use Node.js ${{ matrix.node-version }} | ||||
|       uses: actions/setup-node@v1 | ||||
|       with: | ||||
|         node-version: ${{ matrix.node-version }} | ||||
|     - run: cp config.json.example config.json | ||||
|     - name: npm install | ||||
|       run: | | ||||
|         npm ci | ||||
|       env: | ||||
|         CI: true | ||||
|     - run: npm run test:sanity | ||||
|    | ||||
|   common: | ||||
|     runs-on: ubuntu-latest | ||||
|     strategy: | ||||
|       matrix: | ||||
|         node-version: [12.x] | ||||
|     steps: | ||||
|     - uses: actions/checkout@v1 | ||||
|       with: | ||||
|         fetch-depth: 1 | ||||
|     - name: Use Node.js ${{ matrix.node-version }} | ||||
|       uses: actions/setup-node@v1 | ||||
|       with: | ||||
|         node-version: ${{ matrix.node-version }} | ||||
|     - run: cp config.json.example config.json | ||||
|     - name: npm install | ||||
|       run: | | ||||
|         npm ci | ||||
|       env: | ||||
|         CI: true | ||||
|     - run: npm run test:common | ||||
|   content: | ||||
|     runs-on: ubuntu-latest | ||||
|     strategy: | ||||
|       matrix: | ||||
|         node-version: [12.x] | ||||
|     steps: | ||||
|     - uses: actions/checkout@v1 | ||||
|       with: | ||||
|         fetch-depth: 1 | ||||
|     - name: Use Node.js ${{ matrix.node-version }} | ||||
|       uses: actions/setup-node@v1 | ||||
|       with: | ||||
|         node-version: ${{ matrix.node-version }} | ||||
|     - run: cp config.json.example config.json | ||||
|     - name: npm install | ||||
|       run: | | ||||
|         npm ci | ||||
|       env: | ||||
|         CI: true | ||||
|     - run: npm run test:content | ||||
|    | ||||
|   api-unit: | ||||
|     runs-on: ubuntu-latest | ||||
|     strategy: | ||||
|       matrix: | ||||
|         node-version: [12.x] | ||||
|     steps: | ||||
|     - uses: actions/checkout@v1 | ||||
|       with: | ||||
|         fetch-depth: 1 | ||||
|     - name: Use Node.js ${{ matrix.node-version }} | ||||
|       uses: actions/setup-node@v1 | ||||
|       with: | ||||
|         node-version: ${{ matrix.node-version }} | ||||
|     - run: sudo docker run --name mongo -d -p 27017:27017 mongo | ||||
|     - run: cp config.json.example config.json | ||||
|     - name: npm install | ||||
|       run: | | ||||
|         npm ci | ||||
|       env: | ||||
|         CI: true | ||||
|     - run: npm run test:api:unit | ||||
|       env: | ||||
|         REQUIRES_SERVER=true: true | ||||
|   api-v3-integration: | ||||
|     runs-on: ubuntu-latest | ||||
|     strategy: | ||||
|       matrix: | ||||
|         node-version: [12.x] | ||||
|     steps: | ||||
|     - uses: actions/checkout@v1 | ||||
|       with: | ||||
|         fetch-depth: 1 | ||||
|     - name: Use Node.js ${{ matrix.node-version }} | ||||
|       uses: actions/setup-node@v1 | ||||
|       with: | ||||
|         node-version: ${{ matrix.node-version }} | ||||
|     - run: sudo docker run --name mongo -d -p 27017:27017 mongo | ||||
|     - run: cp config.json.example config.json | ||||
|     - name: npm install | ||||
|       run: | | ||||
|         npm ci | ||||
|       env: | ||||
|         CI: true | ||||
|     - run: npm run test:api-v3:integration | ||||
|       env: | ||||
|         REQUIRES_SERVER=true: true | ||||
|   api-v4-integration: | ||||
|     runs-on: ubuntu-latest | ||||
|     strategy: | ||||
|       matrix: | ||||
|         node-version: [12.x] | ||||
|     steps: | ||||
|     - uses: actions/checkout@v1 | ||||
|       with: | ||||
|         fetch-depth: 1 | ||||
|     - name: Use Node.js ${{ matrix.node-version }} | ||||
|       uses: actions/setup-node@v1 | ||||
|       with: | ||||
|         node-version: ${{ matrix.node-version }} | ||||
|     - run: sudo docker run --name mongo -d -p 27017:27017 mongo | ||||
|     - run: cp config.json.example config.json | ||||
|     - name: npm install | ||||
|       run: | | ||||
|         npm ci | ||||
|       env: | ||||
|         CI: true | ||||
|     - run: npm run test:api-v4:integration | ||||
|       env: | ||||
|         REQUIRES_SERVER=true: true | ||||
|  | ||||
|   client-unit: | ||||
|     runs-on: ubuntu-latest | ||||
|     strategy: | ||||
|       matrix: | ||||
|         node-version: [12.x] | ||||
|     steps: | ||||
|     - uses: actions/checkout@v1 | ||||
|       with: | ||||
|         fetch-depth: 1 | ||||
|     - name: Use Node.js ${{ matrix.node-version }} | ||||
|       uses: actions/setup-node@v1 | ||||
|       with: | ||||
|         node-version: ${{ matrix.node-version }} | ||||
|     - run: cp config.json.example config.json | ||||
|     - name: npm install | ||||
|       run: | | ||||
|         npm ci | ||||
|       env: | ||||
|         CI: true | ||||
|     - run: npm run test:unit | ||||
|       working-directory: ./website/client | ||||
							
								
								
									
										28
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										28
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -1,15 +1,18 @@ | ||||
| .DS_Store | ||||
| website/build | ||||
| website/client/gen | ||||
| website/client/common | ||||
| website/client/apidoc | ||||
| website/transpiled-babel/ | ||||
| website/common/transpiled-babel/ | ||||
| common/transpiled-babel/ | ||||
| node_modules | ||||
| content_cache | ||||
| apidoc_build | ||||
| *.swp | ||||
| .idea* | ||||
| config.json | ||||
| npm-debug.log* | ||||
| lib | ||||
| website/client/bower_components | ||||
| website/client/new-stuff.html | ||||
| website/build | ||||
| newrelic_agent.log | ||||
| .bower-tmp | ||||
| .bower-registry | ||||
| @@ -20,23 +23,18 @@ TODO | ||||
| *.log | ||||
| src/*/*.map | ||||
| src/*/*/*.map | ||||
| test/*.js | ||||
| test/*.map | ||||
| website/client/docs | ||||
| *.sublime-workspace | ||||
| coverage | ||||
| coverage.html | ||||
| common/dist/scripts/* | ||||
| dist | ||||
| dist-client | ||||
| website/client/dist | ||||
| test/client/unit/coverage | ||||
| test/client/e2e/reports | ||||
| test/client-old/spec/mocks/translations.js | ||||
| yarn.lock | ||||
| .gitattributes | ||||
| common/dist/sprites/habitrpg-shared.css | ||||
|  | ||||
| test/spec/mocks/translations.js | ||||
|  | ||||
| # Elastic Beanstalk Files | ||||
| .elasticbeanstalk/* | ||||
| !.elasticbeanstalk/*.cfg.yml | ||||
| !.elasticbeanstalk/*.global.yml | ||||
|  | ||||
| # webstorm fake webpack for path intellisense | ||||
| webpack.webstorm.config | ||||
|   | ||||
| @@ -1,9 +1,16 @@ | ||||
| node_modules/** | ||||
| .bower-cache/** | ||||
| .bower-tmp/** | ||||
| .bower-registry/** | ||||
| website/client/** | ||||
| website/views/** | ||||
| website/build/** | ||||
| test/** | ||||
| .git/** | ||||
| Gruntfile.js | ||||
| CHANGELOG.md | ||||
| .idea* | ||||
| *.log | ||||
| newrelic_agent.log | ||||
| *.swp | ||||
| *.swx | ||||
| website/raw_sprites/** | ||||
|   | ||||
							
								
								
									
										17
									
								
								.travis.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								.travis.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,17 @@ | ||||
| language: node_js | ||||
| node_js: | ||||
|   - '4.3.1' | ||||
| before_install: | ||||
|   - "npm install -g npm@3" | ||||
|   - "npm install -g gulp" | ||||
|   - "sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10" | ||||
|   - "echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list" | ||||
|   - "sudo apt-get update" | ||||
|   - "sudo apt-get install mongodb-org-server" | ||||
| before_script: | ||||
|   - 'npm install -g grunt-cli mocha' | ||||
|   - cp config.json.example config.json | ||||
|   - "until nc -z localhost 27017; do echo Waiting for MongoDB; sleep 1; done" | ||||
|   - "export DISPLAY=:99" | ||||
| after_script: | ||||
|   - "./node_modules/.bin/lcov-result-merger 'coverage/**/*.info' | ./node_modules/coveralls/bin/coveralls.js" | ||||
							
								
								
									
										54
									
								
								Dockerfile
									
									
									
									
									
								
							
							
						
						
									
										54
									
								
								Dockerfile
									
									
									
									
									
								
							| @@ -1,27 +1,43 @@ | ||||
| FROM node:12 | ||||
| FROM ubuntu:trusty | ||||
|  | ||||
| ENV ADMIN_EMAIL admin@habitica.com | ||||
| ENV AMAZON_PAYMENTS_CLIENT_ID amzn1.application-oa2-client.68ed9e6904ef438fbc1bf86bf494056e | ||||
| ENV AMAZON_PAYMENTS_SELLER_ID AMQ3SB4SG5E91 | ||||
| ENV AMPLITUDE_KEY e8d4c24b3d6ef3ee73eeba715023dd43 | ||||
| ENV BASE_URL https://habitica.com | ||||
| ENV FACEBOOK_KEY 128307497299777 | ||||
| ENV GA_ID UA-33510635-1 | ||||
| ENV GOOGLE_CLIENT_ID 1035232791481-32vtplgnjnd1aufv3mcu1lthf31795fq.apps.googleusercontent.com | ||||
| ENV LOGGLY_CLIENT_TOKEN ab5663bf-241f-4d14-8783-7d80db77089a | ||||
| ENV NODE_ENV production | ||||
| ENV STRIPE_PUB_KEY pk_85fQ0yMECHNfHTSsZoxZXlPSwSNfA | ||||
| MAINTAINER Sabe Jones <sabe@habitica.com> | ||||
|  | ||||
| # Avoid ERROR: invoke-rc.d: policy-rc.d denied execution of start. | ||||
| RUN echo -e '#!/bin/sh\nexit 0' > /usr/sbin/policy-rc.d | ||||
|  | ||||
| # Install prerequisites | ||||
| RUN apt-get update | ||||
| RUN apt-get install -y \ | ||||
|     build-essential \ | ||||
|     curl \ | ||||
|     git \ | ||||
|     libfontconfig1 \ | ||||
|     libfreetype6 \ | ||||
|     libkrb5-dev \ | ||||
|     python | ||||
|  | ||||
| # Install NodeJS | ||||
| RUN curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash - | ||||
| RUN apt-get install -y nodejs | ||||
|  | ||||
| # Clean up package management | ||||
| RUN apt-get clean | ||||
| RUN rm -rf /var/lib/apt/lists/* | ||||
|  | ||||
| # Install global packages | ||||
| RUN npm install -g gulp-cli mocha | ||||
| RUN npm install -g npm@3 | ||||
| RUN npm install -g gulp grunt-cli bower | ||||
|  | ||||
| # Clone Habitica repo and install dependencies | ||||
| RUN mkdir -p /usr/src/habitrpg | ||||
| WORKDIR /usr/src/habitrpg | ||||
| RUN git clone --branch release --depth 1 https://github.com/HabitRPG/habitica.git /usr/src/habitrpg | ||||
| RUN npm set unsafe-perm true | ||||
| WORKDIR /habitrpg | ||||
| RUN git clone https://github.com/HabitRPG/habitrpg.git /habitrpg | ||||
| RUN npm install | ||||
| RUN bower install --allow-root | ||||
|  | ||||
| # Create environment config file and build directory | ||||
| RUN cp config.json.example config.json | ||||
| RUN mkdir -p ./website/build | ||||
|  | ||||
| # Start Habitica | ||||
| EXPOSE 80 8080 36612 | ||||
| CMD ["node", "./website/transpiled-babel/index.js"] | ||||
| EXPOSE 3000 | ||||
| CMD ["npm", "start"] | ||||
|   | ||||
| @@ -1,14 +0,0 @@ | ||||
| FROM node:12 | ||||
|  | ||||
| # Install global packages | ||||
| RUN npm install -g gulp-cli mocha | ||||
|  | ||||
| # Copy package.json and package-lock.json into image, then install | ||||
| # dependencies. | ||||
| WORKDIR /usr/src/habitica | ||||
| COPY ["package.json", "package-lock.json", "./"] | ||||
| RUN npm install | ||||
|  | ||||
| # Copy the remaining source files in. | ||||
| COPY . /usr/src/habitica | ||||
| RUN npm run postinstall | ||||
							
								
								
									
										151
									
								
								Gruntfile.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										151
									
								
								Gruntfile.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,151 @@ | ||||
| /*global module:false*/ | ||||
| require('babel-register'); | ||||
| var _ = require('lodash'); | ||||
| module.exports = function(grunt) { | ||||
|  | ||||
|   // Project configuration. | ||||
|   grunt.initConfig({ | ||||
|     pkg: grunt.file.readJSON('package.json'), | ||||
|  | ||||
|     karma: { | ||||
|       unit: { | ||||
|         configFile: 'karma.conf.js' | ||||
|       }, | ||||
|       continuous: { | ||||
|         configFile: 'karma.conf.js', | ||||
|         singleRun: true, | ||||
|         autoWatch: false | ||||
|       } | ||||
|     }, | ||||
|  | ||||
|     clean: { | ||||
|       build: ['website/build'] | ||||
|     }, | ||||
|  | ||||
|     cssmin: { | ||||
|       dist: { | ||||
|         options: { | ||||
|           report: 'gzip' | ||||
|         }, | ||||
|         files:{ | ||||
|           "common/dist/sprites/habitrpg-shared.css": [ | ||||
|             "common/dist/sprites/spritesmith*.css", | ||||
|             "common/css/backer.css", | ||||
|             "common/css/Mounts.css", | ||||
|             "common/css/index.css" | ||||
|           ] | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|  | ||||
|     stylus: { | ||||
|       build: { | ||||
|         options: { | ||||
|           compress: false, // AFTER | ||||
|           'include css': true, | ||||
|           paths: ['website/client'] | ||||
|         }, | ||||
|         files: { | ||||
|           'website/build/app.css': ['website/client/css/index.styl'], | ||||
|           'website/build/static.css': ['website/client/css/static.styl'] | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|  | ||||
|     copy: { | ||||
|       build: { | ||||
|         files: [ | ||||
|           {expand: true, cwd: 'website/client/', src: 'favicon.ico', dest: 'website/build/'}, | ||||
|           {expand: true, cwd: 'website/client/', src: 'favicon_192x192.png', dest: 'website/build/'}, | ||||
|           {expand: true, cwd: '', src: 'common/dist/sprites/spritesmith*.png', dest: 'website/build/'}, | ||||
|           {expand: true, cwd: '', src: 'common/img/sprites/backer-only/*.gif', dest: 'website/build/'}, | ||||
|           {expand: true, cwd: '', src: 'common/img/sprites/npc_ian.gif', dest: 'website/build/'}, | ||||
|           {expand: true, cwd: '', src: 'common/img/sprites/quest_*.gif', dest: 'website/build/'}, | ||||
|           {expand: true, cwd: 'website/client/', src: 'bower_components/bootstrap/dist/fonts/*', dest: 'website/build/'} | ||||
|         ] | ||||
|       } | ||||
|     }, | ||||
|  | ||||
|     // UPDATE IT WHEN YOU ADD SOME FILES NOT ALREADY MATCHED! | ||||
|     hashres: { | ||||
|       build: { | ||||
|         options: { | ||||
|           fileNameFormat: '${name}-${hash}.${ext}' | ||||
|         }, | ||||
|         src: [ | ||||
|           'website/build/*.js', | ||||
|           'website/build/*.css', | ||||
|           'website/build/favicon.ico', | ||||
|           'website/build/favicon_192x192.png', | ||||
|           'website/build/common/dist/sprites/*.png', | ||||
|           'website/build/common/img/sprites/backer-only/*.gif', | ||||
|           'website/build/common/img/sprites/npc_ian.gif', | ||||
|           'website/build/common/img/sprites/quest_*.gif', | ||||
|           'website/build/bower_components/bootstrap/dist/fonts/*' | ||||
|         ], | ||||
|         dest: 'website/build/*.css' | ||||
|       } | ||||
|     } | ||||
|   }); | ||||
|  | ||||
|   //Load build files from client/manifest.json | ||||
|   grunt.registerTask('loadManifestFiles', 'Load all build files from client/manifest.json', function(){ | ||||
|     var files = grunt.file.readJSON('./website/client/manifest.json'); | ||||
|     var uglify = {}; | ||||
|     var cssmin = {}; | ||||
|  | ||||
|     _.each(files, function(val, key){ | ||||
|  | ||||
|       var js = uglify['website/build/' + key + '.js'] = []; | ||||
|  | ||||
|       _.each(files[key].js, function(val){ | ||||
|         var path = "./"; | ||||
|         if( val.indexOf('common/') == -1) | ||||
|           path = './website/client/'; | ||||
|         js.push(path + val); | ||||
|       }); | ||||
|  | ||||
|       var css = cssmin['website/build/' + key + '.css'] = []; | ||||
|  | ||||
|       _.each(files[key].css, function(val){ | ||||
|         var path = "./"; | ||||
|         if( val.indexOf('common/') == -1) { | ||||
|           path = (val == 'app.css' || val == 'static.css') ?  './website/build/' : './website/client/'; | ||||
|         } | ||||
|         css.push(path + val) | ||||
|       }); | ||||
|  | ||||
|     }); | ||||
|  | ||||
|     grunt.config.set('uglify.build.files', uglify); | ||||
|     grunt.config.set('uglify.build.options', {compress: false}); | ||||
|  | ||||
|     grunt.config.set('cssmin.build.files', cssmin); | ||||
|     // Rewrite urls to relative path | ||||
|     grunt.config.set('cssmin.build.options', {'target': 'website/client/css/whatever-css.css'}); | ||||
|   }); | ||||
|  | ||||
|   // Register tasks. | ||||
|   grunt.registerTask('build:prod', ['loadManifestFiles', 'clean:build', 'uglify', 'stylus', 'cssmin', 'copy:build', 'hashres']); | ||||
|   grunt.registerTask('build:dev', ['cssmin', 'stylus']); | ||||
|   grunt.registerTask('build:test', ['test:prepare:translations', 'build:dev']); | ||||
|  | ||||
|   grunt.registerTask('test:prepare:translations', function() { | ||||
|     var i18n  = require('./website/server/libs/i18n'), | ||||
|         fs    = require('fs'); | ||||
|     fs.writeFileSync('test/spec/mocks/translations.js', | ||||
|       "if(!window.env) window.env = {};\n" + | ||||
|       "window.env.translations = " + JSON.stringify(i18n.translations['en']) + ';'); | ||||
|   }); | ||||
|  | ||||
|   // Load tasks | ||||
|   grunt.loadNpmTasks('grunt-contrib-uglify'); | ||||
|   grunt.loadNpmTasks('grunt-contrib-clean'); | ||||
|   grunt.loadNpmTasks('grunt-contrib-stylus'); | ||||
|   grunt.loadNpmTasks('grunt-contrib-cssmin'); | ||||
|   grunt.loadNpmTasks('grunt-contrib-copy'); | ||||
|   grunt.loadNpmTasks('grunt-contrib-watch'); | ||||
|   grunt.loadNpmTasks('grunt-hashres'); | ||||
|   grunt.loadNpmTasks('grunt-karma'); | ||||
|  | ||||
| }; | ||||
							
								
								
									
										32
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										32
									
								
								README.md
									
									
									
									
									
								
							| @@ -1,16 +1,30 @@ | ||||
| Habitica  [](https://codeclimate.com/github/HabitRPG/habitrpg) [](https://www.bountysource.com/trackers/68393-habitrpg?utm_source=68393&utm_medium=shield&utm_campaign=TRACKER_BADGE) [](https://www.codetriage.com/habitrpg/habitica) | ||||
| Habitica [](https://travis-ci.org/HabitRPG/habitrpg) [](https://codeclimate.com/github/HabitRPG/habitrpg) [](https://coveralls.io/r/HabitRPG/habitrpg?branch=develop) [](https://www.bountysource.com/trackers/68393-habitrpg?utm_source=68393&utm_medium=shield&utm_campaign=TRACKER_BADGE) | ||||
| =============== | ||||
|  | ||||
| [](https://greenkeeper.io/) | ||||
|  | ||||
| [Habitica](https://habitica.com) is an open source habit building program which treats your life like a Role Playing Game. Level up as you succeed, lose HP as you fail, earn money to buy weapons and armor. | ||||
|  | ||||
| **We need more programmers!** Your assistance will be greatly appreciated. The wiki pages below and the additional pages they link to will tell you how to get started on contributing code and where you can go to seek further help or ask questions: | ||||
| * [Guidance for Blacksmiths](http://habitica.fandom.com/wiki/Guidance_for_Blacksmiths) - an introduction to the technologies used and how the software is organized. | ||||
| * [Setting up Habitica Locally](http://habitica.fandom.com/wiki/Setting_up_Habitica_Locally) - how to set up a local install of Habitica for development and testing on various platforms. | ||||
| We need more programmers! Your assistance will be greatly appreciated. | ||||
|  | ||||
| Habitica's code is licensed as described at https://github.com/HabitRPG/habitica/blob/develop/LICENSE | ||||
| For an introduction to the technologies used and how the software is organized, refer to [Contributing to Habitica](http://habitica.wikia.com/wiki/Contributing_to_Habitica#Coders_.28Web_.26_Mobile.29) - "Coders (Web & Mobile)" section. | ||||
|  | ||||
| **Found a bug?** Please report it in the [Report a Bug guild](https://habitica.com/groups/guild/a29da26b-37de-4a71-b0c6-48e72a900dac) rather than creating an issue (an admin will advise you if a new issue is necessary; usually it is not). | ||||
| To set up a local install of Habitica for development and testing, see [Setting up Habitica Locally](http://habitica.wikia.com/wiki/Setting_up_Habitica_Locally), which contains instructions for Windows, *nix / Mac OS, and Vagrant. | ||||
|  | ||||
| **Have any questions about Habitica or its community?** See the links in the [habitica.com](https://habitica.com) website's Help menu or drop in to [Guilds > Tavern Chat](https://habitica.com/groups/tavern) to ask questions or chat socially! | ||||
| Then read [Guidance for Blacksmiths](http://habitica.wikia.com/wiki/Guidance_for_Blacksmiths) for additional instructions and useful tips. | ||||
|  | ||||
| ## Debug Scripts | ||||
|  | ||||
| In the `./debug-scripts/` folder, there are a few files. Here's a sample: | ||||
|  | ||||
| ```bash | ||||
| grant-all-equipment.js | ||||
| grant-all-mounts.js | ||||
| grant-all-pets.js | ||||
| ``` | ||||
|  | ||||
| You can run them by doing: | ||||
|  | ||||
| ```bash | ||||
| node debug-scripts/name-of-script.js | ||||
| ``` | ||||
|  | ||||
| If there are more arguments required to make the script work, it will print out the usage and an explanation of what the script does. | ||||
|   | ||||
							
								
								
									
										11
									
								
								VAGRANT.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								VAGRANT.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,11 @@ | ||||
| # Vagrant # | ||||
|  | ||||
| Vagrant is a system to create reproducible and portable development | ||||
| environments. Because of the variety of systems used for Habitica | ||||
| development and the various issues developers may encounter setting up | ||||
| Habitica on them, vagrant provides a single development enviroment with | ||||
| minimal dependencies on the developer's local platform. It can be used | ||||
| on a variety of systems including Windows, Mac OS X, and Linux. | ||||
|  | ||||
| Instructions for using the Habitica Vagrant environment are in | ||||
| [Setting up Habitica Locally](http://habitica.wikia.com/wiki/Setting_up_Habitica_Locally). | ||||
							
								
								
									
										20
									
								
								Vagrantfile.example
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								Vagrantfile.example
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | ||||
| # -*- mode: ruby -*- | ||||
| # vi: set ft=ruby : | ||||
|  | ||||
| # Vagrantfile API/syntax version. Don't touch unless you know what you're doing! | ||||
| VAGRANTFILE_API_VERSION = "2" | ||||
|  | ||||
| Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| | ||||
|   config.vm.provider "virtualbox" do |v| | ||||
|     v.memory = 4096 | ||||
|     v.cpus = 1 | ||||
|     v.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/vagrant", "1"] | ||||
|   end | ||||
|   config.vm.box = "thepeopleseason/habitrpg" | ||||
|   config.ssh.forward_agent = true | ||||
|  | ||||
|   config.vm.hostname = "habitrpg" | ||||
|   config.vm.network "forwarded_port", guest: 3000, host: 3000, auto_correct: true | ||||
|   config.vm.usable_port_range = (3000..3050) | ||||
|   config.vm.provision :shell, :path => "vagrant_scripts/vagrant.sh" | ||||
| end | ||||
							
								
								
									
										55
									
								
								bower.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								bower.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,55 @@ | ||||
| { | ||||
|   "name": "HabitRPG", | ||||
|   "version": "0.1.1", | ||||
|   "homepage": "https://github.com/lefnire/habitrpg", | ||||
|   "authors": [ | ||||
|     "Tyler Renelle <tylerrenelle@gmail.com>" | ||||
|   ], | ||||
|   "private": true, | ||||
|   "ignore": [ | ||||
|     "**/.*", | ||||
|     "node_modules", | ||||
|     "website/client/bower_components", | ||||
|     "test", | ||||
|     "tests" | ||||
|   ], | ||||
|   "dependencies": { | ||||
|     "Angular-At-Directive": "snicker/Angular-At-Directive#c27bae207aa06d1e", | ||||
|     "angular": "1.3.9", | ||||
|     "angular-bootstrap": "0.13.0", | ||||
|     "angular-filter": "0.5.1", | ||||
|     "angular-loading-bar": "0.6.0", | ||||
|     "angular-resource": "1.3.9", | ||||
|     "angular-sanitize": "1.3.9", | ||||
|     "angular-ui": "0.4.0", | ||||
|     "angular-ui-router": "0.2.13", | ||||
|     "angular-ui-select2": "angular-ui/ui-select2#afa6589a54cb72815f", | ||||
|     "angular-ui-utils": "0.1.0", | ||||
|     "bootstrap": "3.1.0", | ||||
|     "bootstrap-growl": "ifightcrime/bootstrap-growl#162daa41cd1155f", | ||||
|     "bootstrap-tour": "0.10.1", | ||||
|     "css-social-buttons": "samcollins/css-social-buttons#v1.1.1 ", | ||||
|     "github-buttons": "mdo/github-buttons#v3.0.0", | ||||
|     "hello": "1.13.4", | ||||
|     "jquery": "2.1.0", | ||||
|     "jquery-colorbox": "1.4.36", | ||||
|     "jquery-ui": "1.10.3", | ||||
|     "jquery.cookie": "1.4.0", | ||||
|     "js-emoji": "snicker/js-emoji#f25d8a303f", | ||||
|     "ngInfiniteScroll": "1.0.0", | ||||
|     "pnotify": "1.3.1", | ||||
|     "sticky": "1.0.3", | ||||
|     "swagger-ui": "wordnik/swagger-ui#v2.0.24", | ||||
|     "smart-app-banner": "78ef9c0679723b25be1a0ae04f7b4aef7cbced4f", | ||||
|     "habitica-markdown": "1.2.2", | ||||
|     "pusher-js-auth": "^2.0.0", | ||||
|     "pusher-websocket-iso": "pusher#^3.1.0" | ||||
|   }, | ||||
|   "devDependencies": { | ||||
|     "angular-mocks": "1.3.9" | ||||
|   }, | ||||
|   "resolutions": { | ||||
|     "angular": "1.3.9", | ||||
|     "jquery": ">=1.9.0" | ||||
|   } | ||||
| } | ||||
							
								
								
									
										4
									
								
								common/.eslintrc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								common/.eslintrc
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | ||||
| { | ||||
|   "extends": "habitrpg/browser" | ||||
| } | ||||
|  | ||||
							
								
								
									
										16
									
								
								common/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								common/README.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,16 @@ | ||||
| # Common | ||||
|  | ||||
| Shared resources useful for the multiple Habitica repositories, that way all the repositories remain in-sync with common characteristics. Includes things like: | ||||
|  | ||||
|  * Assets - sprites, images, etc | ||||
|  * CSS - especially, esp. sprite-sheet mapping | ||||
|  * Algorithms - level up algorithm, scoring functions, etc | ||||
|  * View helper functions that may come in handy for multiple client MVCs | ||||
|  * Item definitions - weapons, armor, pets  | ||||
|  | ||||
| ## Compiling spritesheets | ||||
| Because of some wonkiness with Heroku, the spritesheet compilation is not part of the production build process and must be done manually when new images are added by running:  | ||||
|  | ||||
| ``` bash | ||||
| npm run sprites | ||||
| ``` | ||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user