This project is free software distributed under the GPL 3 or later license. All content on the project is licensed under CC BY-NC 4.0 DEED, unless otherwise indicated.
Teaching is often a daily challenge for both students and teachers, each for different reasons. Our goal is to support both sides of the learning process by providing diverse tools.
Unsurprisingly, the main teaching tool in History Tracers is YOU. Through our own body, we study different sciences.
With the exception of two sections that will soon receive audio (General History and Historical Events), all project texts already include narration. This way, in addition to reading and practicing, you can also listen to the content whenever you like.
Purely written texts may be challenging for some people. For this reason, we present illustrated content whenever necessary.
Family relationships play an important role in education, as they make knowledge literally become part of our lives. For this reason, we use genealogy in different types of content.
Theoretical teaching is important, but science without practice is not science. For this reason, most texts include, at the end, questions with answers so you can check whether you understood the content. In addition, some texts include practices that can be carried out at home.
The word that names this section is long and equally deep. It highlights the need for content from different disciplines to be presented together. For this reason, the same text from History Tracers may appear in different sections.
In some texts, we also present videos to further illustrate the content.
Our project is designed to minimize page reloads and does not consolidate all its code into a single file. Consequently, attempting to open the index.html file locally triggers the need to load additional JavaScript files, resulting in your browser interpreting it as a CORS request, and blocking access.
To enable local access to the content, we have developed a simple web server using GO. After installing GO on your host machine, you can execute the following command:
$ go run src/history_tracers.go
Listening Port 12345 without devmode content /Once you've completed these steps, you can open your web browser and navigate to http://localhost:12345.
To incorporate a new language into the project, begin by creating a directory. Subsequently, execute a script that automatically generates all necessary files for the new language:
$ mkdir lang/es-ES
$ cd scripts
$ bash create_language.sh --path "es-ES" --msg "Aguardando traducción"Lastly, you can incorporate content in another language. It's advisable to commence by handling files whose names do not follow the Universal Unique Identifier format.
History Tracers uses GNU Make as its build system.
Before running any make commands, you must run the ./configure script to set up the build environment. This script allows you to customize installation paths and compiler options:
$ ./configure [OPTIONS]Available options:
--prefix=PREFIX- Installation prefix directory [/usr]--with-go-compiler=COMPILER- Specify Go compiler (go, gccgo, or full path) [auto]--with-conf-path=PATH- Configuration file path [/etc/historytracers/historytracers.conf]--with-src-path=PATH- Source directory path [/var/www/htdocs/historytracers/]--with-content-path=PATH- Content directory path [/usr/share/historytracers/www/]--with-log-path=PATH- Log directory path [/var/log/historytracers/]--help- Display all available options
For a complete list of options, run:
$ ./configure --help$ make # Build both webserver and editor binaries
$ make all # Alias for make
$ make webserver # Build only web server
$ make editor # Build only the editor
$ make dev # Development build (no optimization flags)
$ make prod # Production build (with optimization)$ make test # Run all tests in src/webserver and src/editorTo run a single test:
$ cd src/webserver && go test -run TestFunctionName ./...
$ cd src/editor && go test -run TestFunctionName ./...$ make fmt # Format all Go code (go fmt)Manual formatting:
$ cd src/webserver && go fmt ./...
$ cd src/editor && go fmt ./...$ make deps # Install dependencies
$ make update-deps # Update all dependencies$ make install # Install binaries to system
$ make clean # Remove build artifactsTo simplify the process, we’ve added the script ht2pkg.sh, which automatically runs all the steps required to generate the packages:
$ ./ht2pkg.sh