Skip to content

Commit

Permalink
Merge branch 'dev' into feature/voucher-redemption
Browse files Browse the repository at this point in the history
A lot of manual resolution was performed, which might have introduced
small errors.
  • Loading branch information
Splines committed Sep 21, 2024
2 parents 2ce127f + 73b0fc8 commit 4576b15
Show file tree
Hide file tree
Showing 43 changed files with 826 additions and 579 deletions.
3 changes: 0 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,6 @@
# Ignore bundler config.
/.bundle

# Ignore the default SQLite database.
/db/*.sqlite3
/db/*.sqlite3-journal
/db/csv/*
/db/backups/*
!/backups/.gitkeep
Expand Down
1 change: 1 addition & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,7 @@
"factorybot",
"helpdesk",
"katex",
"Timecop",
"turbolinks"
]
}
42 changes: 8 additions & 34 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,41 +1,15 @@
# Contributing

To ensure a smooth experience for contributions, please first open an issue about the change you wish to make or contact
an active developer in some other way before making a change.
We are a small dev team centered around [Denis Vogel](https://www.mathi.uni-heidelberg.de/~vogel/), the creator of MaMpf. He started the project on June 4, 2017 out of frustration with the existing tools and their shortcomings when it comes to teaching mathematics and uploading recorded lectures to the web. He has since been the main developer and maintainer of the project and added tons of functionality throughout the years. MaMpf is now used every day by the mathematics department at Heidelberg University to host their lectures. It is constantly being improved and extended.

## Braches
We have the following branches:
- *production*
- *main*
- *mampf-next*
- feature-branches (names vary)
- *experimental*
Denis Vogel was joined by many students along the way working on the project in the role of a payed HiWis (German abbreviation for "Hilsfwissenschaftler", research assistants) at Heidelberg University. They have contributed to the project in various ways, such as implementing new features, fixing bugs, testing the software and improving the documentation.

### *production*
contains the actual version deployed on [mampf](mampf.mathi.uni-heidelberg.de).
The idea of MaMpf is to provide free material online to the whole world. In that spirit, the source code for MaMpf is open-source and licensed under the very permissive MIT license, so your university can host their own instance of MaMpf if they want to.

### *main*
is usually equal to *production*. Hotfixes are tested here before being merged to *production*.
---

### *mampf-next*
is the next intended version for mampf. This version is automatically deployed on
[mampf-dev](mampf-dev.mathi.uni-heidelberg.de). Features should be developed in feature branches and merged here.
**While we welcome contributions from everyone, please keep in mind that we are a very small team and currently cannot provide extensive mentoring or guidance to new external contributors.** If you are a HiWi at Heidelberg University, that's of course a different story, but unfortunately, right now we don't have too much time to onboard new developers form the outside. Knowledge transfer is often easier in persona than having to write down everything online. We have done such efforts in our [Wiki](https://github.com/MaMpf-HD/mampf/wiki) and continue to improve it as living document but don't expect it to be fully self-contained.
Also note that due to MaMpf being very specific to our needs at Heidelberg University, we might reject contributions that are not in line with our vision for the project or too general (or too specific to another university) to be useful for us. Therefore, **please open an issue before starting to work on a pull request to discuss your idea with us**.

### feature branches
Collaborators may create a branch for each improvement they would like to integrate in *mampf-next*. If you do not have
collaborator access yet, feel free to instead fork this repository and open a pull request targeted on the *mampf-next*
branch.

### *experimental*
is used as a playground and for test deployments. Do **not** put important work here. This branch is intended to be
force-pushed by any collaborator. If you ever want to deploy a version in a production-like environment, feel free to
do

> git checkout experimental
>
> git reset --hard <version>
>
> git push -f
If you are not a collaborator, feel free to open a pull-request on experimental with a note, that you are aware of this
policy and would just like to try out a change.
> [!tip]
> Check out our [**Wiki**](https://github.com/MaMpf-HD/mampf/wiki) if you are a new MaMpf developer and want to get started with setting up your own local Docker instance and get to know our development workflow and the code structure.
203 changes: 81 additions & 122 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -1,144 +1,103 @@
source "https://rubygems.org"
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
# We only pin versions to specific Git commits when they are "problem childs"
# and we want to review each commit before updating to the latest version.

ruby "3.1.4"

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem "rails", "~> 7.1.3"
# Use dalli for caching to memcached in production
gem "dalli", ">= 2.7"
# Ruby wrapper for UglifyJS JavaScript compressor
gem "terser"
# Use nulldb adapter for assets precompilation in production
gem "activerecord-nulldb-adapter"
# Use sqlite3 as the database for Active Record
gem "sqlite3", "~> 1.4"
# Use Puma as the app server
gem "puma", "< 7"
# Use SCSS for stylesheets
gem "sass-rails", ">= 6"
# Transpile app-like JavaScript. Read more: https://github.com/rails/webpacker
# gem 'webpacker', '~> 4.0'
# Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks
gem "turbolinks", "~> 5"
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem "jbuilder"
# Use Redis adapter to run Action Cable in production
# gem 'redis', '~> 4.0'
# Use Active Model has_secure_password
# gem 'bcrypt', '~> 3.1.7'

# Use Active Storage variant
# gem 'image_processing', '~> 1.2'

# Reduces boot times through caching; required in config/boot.rb
gem "active_model_serializers"
gem "bootsnap", ">= 1.4.2", require: false
gem "rack", "<3"
# Use CoffeeScript for .coffee assets and views
gem "coffee-rails", "~> 5.0.0"

# Use Redis adapter to run Action Cable in production
# gem 'redis', '~> 3.0'
gem "fastimage"
gem "image_processing"
gem "mini_magick"
gem "pdf-reader"
gem "shrine"
gem "streamio-ffmpeg"
# Use ActiveModel has_secure_password
# gem 'bcrypt', '~> 3.1.7'
gem "filesize"
# Use Capistrano for deployment
# gem 'capistrano-rails', group: :development
gem "activerecord-import",
git: "https://github.com/zdennis/activerecord-import.git",
branch: "master"
gem "acts_as_list"
gem "acts_as_tree"
gem "acts_as_votable"
gem "barby"
gem "bootstrap", "~>5"
gem "bootstrap_form"
gem "cancancan"
gem "clipboard-rails"
gem "commontator"
gem "coveralls", require: false
gem "devise"
gem "devise-bootstrap-views"
gem "erubis"
gem "exception_handler", "~> 0.8.0.0"
gem "faraday", "~> 1.8"
gem "fuzzy-string-match"
gem "jquery-rails"
gem "jquery-ui-rails"
gem "active_model_serializers", "~> 0.10"
gem "activerecord-import", "~>1.7"
gem "activerecord-nulldb-adapter", "~> 1.0" # for assets precompilation in production
gem "acts_as_list", "~> 1.2"
gem "acts_as_tree", "~> 2.9"
gem "acts_as_votable", "~> 0.14"
gem "barby", "~> 0.6"
gem "bootsnap", "~> 1.18", require: false # reduces boot times through caching
gem "bootstrap", "~>5.3"
gem "bootstrap_form", "~> 5.4"
gem "cancancan", "~> 3.6"
gem "clipboard-rails", "~> 1.7"
gem "coffee-rails", "~> 5.0" # CoffeeScript for .coffee assets and views
gem "commontator", "~> 7.0.1"
gem "coveralls", "~> 0.7", require: false
gem "dalli", "~> 3.2" # caching to memcached in production
gem "devise", "~> 4.9"
gem "devise-bootstrap-views", "~> 1.1"
gem "erubis", "~> 2.7"
gem "exception_handler", "~> 0.8.0.0", "~> 0.8.0"
gem "faraday", "~> 1.8", "~> 1.10"
gem "fastimage", "~> 2.3"
gem "filesize", "~> 0.2"
gem "fuzzy-string-match", "~> 1.0"
gem "image_processing", "~> 1.13"
gem "jbuilder", "~> 2.12" # build JSON APIs easily
gem "jquery-rails", "~> 4.6"
gem "jquery-ui-rails", "~> 7.0"
gem "js-routes", "1.4.9"
gem "kaminari"
gem "kaminari-i18n"
gem "kramdown-parser-gfm"
gem "mobility"
gem "net-smtp"
gem "pg"
gem "premailer-rails"
gem "progress_bar"
gem "rails-i18n"
gem "responders"
gem "rgl"
gem "rqrcode"
gem "rubyzip", "~> 2.3.0"
gem "sidekiq"
gem "sidekiq-cron", "~> 1.1"
gem "sprockets-rails",
git: "https://github.com/rails/sprockets-rails",
branch: "master"
gem "sunspot_rails",
github: "sunspot/sunspot",
glob: "sunspot_rails/*.gemspec"
gem "sunspot_solr"
gem "kaminari", "~> 1.2"
gem "kaminari-i18n", "~> 0.5"
gem "kramdown-parser-gfm", "~> 1.1"
gem "mini_magick", "~> 4.13"
gem "mobility", "~> 1.2"
gem "net-smtp", "~> 0.5"
gem "pdf-reader", "~> 2.12"
gem "pg", "~> 1.5"
gem "premailer-rails", "~> 1.12"
gem "progress_bar", "~> 1.3"
gem "prometheus_exporter", "~> 2.1"
gem "puma", "~> 6.4" # app server
gem "rack", "~> 2.2"
gem "rails", "~> 7.1.3"
gem "rails-i18n", "~> 7.0"
gem "responders", "~> 3.1"
gem "rgl", "~> 0.6"
gem "rqrcode", "~> 2.2"
gem "rubyzip", "~> 2.3"
gem "sass-rails", "~> 6.0" # SCSS for stylesheets
gem "shrine", "~> 3.6"
gem "sidekiq", "~> 7.3"
gem "sidekiq-cron", "~> 1.12"
gem "sprockets-rails", "~>3.5"
gem "streamio-ffmpeg", "~> 3.0"
gem "sunspot_rails", "~> 2.7"
gem "sunspot_solr", "~> 2.7"
gem "terser", "~> 1.2" # Ruby wrapper for UglifyJS JavaScript compressor
gem "thredded", git: "https://github.com/thredded/thredded.git",
ref: "1340e913affd1af5fcc060fbccd271184ece9a6a"
gem "thredded-markdown_katex",
git: "https://github.com/thredded/thredded-markdown_katex.git",
branch: "main"
gem "trix-rails", require: "trix"
gem "webpacker", "~> 5.x"
ref: "e2830bdb40880018a0e59d2b82c94b0a9f237365"
gem "trix-rails", "~> 2.4", require: "trix"
gem "turbolinks", "~> 5.2" # make navigating the app faster
gem "webpacker", "~> 5.4"

group :development, :docker_development do
gem "listen", "~> 3.9"
gem "rails-erd"
# Access an interactive console on exception pages or by calling 'console' anywhere in the code.
gem "web-console", ">= 3.3.0"
# Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
gem "marcel"
gem "pgreset"
gem "rubocop", "~> 1.63", require: false
gem "marcel", "~> 1.0"
gem "pgreset", "~> 0.4"
gem "rails-erd", "~> 1.7"
gem "rubocop", "~> 1.65", require: false
gem "rubocop-performance", "~> 1.21", require: false
gem "rubocop-rails", "~> 2.24", require: false
gem "spring"
gem "spring-watcher-listen", "~> 2.0.0"
# gem 'bullet'
gem "spring", "~> 2.1" # app preloader, keeps app running in background for development
gem "spring-watcher-listen", "~> 2.0"
gem "web-console", "~> 4.2" # interactive console on exception pages
end

group :test do
# Adds support for Capybara system testing and selenium driver
gem "selenium-webdriver"
# Easy installation and use of web drivers to run system tests with browsers
gem "database_cleaner-active_record"
gem "faker"
gem "launchy"
gem "simplecov", require: false
gem "webdrivers"
gem "database_cleaner-active_record", "~> 2.2" # clean up database between tests
gem "faker", "~> 3.4"
gem "launchy", "~> 3.0"
gem "selenium-webdriver", "~> 4.10.0" # support for Capybara system testing and selenium driver
gem "simplecov", "~> 0.22", require: false
gem "timecop", "~> 0.9.10"
gem "webdrivers", "~> 5.3"
end

group :test, :development, :docker_development do
# Call 'byebug' anywhere in the code to stop execution and get a debugger console
gem "byebug", platforms: [:mri, :mingw, :x64_mingw]
gem "factory_bot_rails"
gem "rspec-rails"

gem "simplecov-cobertura"

gem "rspec-github"
gem "byebug", "~> 11.1", platforms: [:mri, :mingw, :x64_mingw]
gem "factory_bot_rails", "~> 6.4"
gem "rspec-github", "~> 2.4"
gem "rspec-rails", "~> 6.1"
gem "simplecov-cobertura", "~> 2.1"
end

gem "prometheus_exporter"
Loading

0 comments on commit 4576b15

Please sign in to comment.