GAKU Engine [学エンジン]
GAKU Engine, or just "GAKU" for short is the "Genshin Academic Karte Unification Engine". The gaku character 「学」 means "Learning", so saying GAKU Engine is roughly equivilent to saying "Learning Engine".
GAKU is a modular, extendable, Open Source school and student management system built on Rails.
GAKU is currently under heavy development.
We do not currently recommend anyone use it in a production environment.
License
This software is dual licensed under the GNU GPL version 3 and the AGPL version 3. Separate licenses are available upon consultation. Please contact [email protected] for details.
What does it do?
GAKU Engine is a full school and student management solution including student, staff, syllabus, course, class, exam management and more. It has a full grading system and offers templatable printable reports. Functionality can be enhanced with extensions and can be integrated with external services and clients using the API.
GAKU Engine is also:
- Completely Open Source, Free as in Freedom, licensed under the GPL v3 and AGPL 3.
- It only uses Free Open Source components and does not rely on a licensed back end.
- There are no per-seat licenses.
- It's Rails based, so it's easily modifyable and extendable.
- It does not require a special client to use. Any standards compliant web browser will do.
- It is multi-locale.
Demo
user: admin, pass: 123456
Requirements
- ruby >= 2.0.0
- postgresql >= 9.2
- postgresql-contrib >= 9.2
Installation
Install postgresql (newer Ubuntu/Debian)
$ cat /etc/*-release #gets your DISTRIBUTION
$ nano /etc/apt/sources.list.d/pgdg.list
Add the line to the pgdg.list file(change DISTRIBUTION):
$ deb http://apt.postgresql.org/pub/repos/apt/ DISTRIBUTION-pgdg main
Install postgre:
$ wget --quiet -O - http://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc | sudo apt-key add - #adds the repo key
$ sudo apt-get update
$ sudo apt-get install postgresql postgresql-contrib libpq-dev
Install GAKU
You have 2 choices:
Simple
Get gaku_dev_app and follow the instructions.
Custom
Create a new Rails application:
$ gem install rails -v 4.0.3
$ rails new my_app
Then add GAKU to your Gemfile:
gem 'gaku', '~> 0.1.1'
Or use the master branch:
gem 'gaku', github: 'GAKUEngine/gaku'
Install dependencies:
$ bundle
Edit config/database.yml to use postgre. Example:
development:
adapter: postgresql
database: gaku_development
username: postgres
min_messages: warning
test:
adapter: postgresql
database: gaku_test
username: postgres
min_messages: warning
production:
adapter: postgresql
database: gaku_production
username: postgres
min_messages: warning
Create the database:
$ rake db:create:all
Run the install generator to copy migrations, initializers, run seed data...
$ rails g gaku:install
Sample Data
If you want to populate sample data:
$ rake db:sample
Defaults: user: admin / pass: 123456
Run
$ rails s
Check http://localhost:3000
Testing
Each component of GAKU Engine has its own set of tests. Core functionality is found in core, Front End functionality is forund in frontend, etc. Generally you'll want to run tests in core, so the example here is for core.
Change to core engine:
$ cd core
Recreate test_app:
$ bundle exec rake test_app
Run specs using Selenium:
$ rspec
Development
Status
Development continuing is contigent upon receiving proper funding. We'll be running a Kickstarter to try and raise funds but we are also open to other investments including VC.
If you would like to participate in development or if you are a school and would like to see GAKU Engine developed plese contact Genshin Souzou K.K. at [email protected]
Pull requests are very welcome! Please try to follow these simple rules if applicable:
Separate branch:
- Please create a feature branch for every separate change you make.
- Open a pull-request early for any new features to get feedback.
- Make sure your patches are well tested. All specs must pass.
- Follow Bozhidar Batsov's style guides: ruby-style-guide and rails-style-guide.
- Run rubocop to ensure no style guide issues.
Master branch:
- Commit directly onto the master branch only for typos, improvements to the readme and documentation.
Project Lead
Core Team
Semi-Active Members
- Yukiharu Nakaya
- Seth Lewis