Skip to content

rodolpheh/stellarisen

Repository files navigation

Interstellai.re

This web application offers an interactive 3D skymap and an animated 3D model of the solar system.

Demo

Made by Rémi BOURGEON & Rodolphe HOUDAS at ISEN Lille.

Planets and moones are not to scale.

Displayed planets do not include dwarf planets and trans-neptunian objects.

Displayed moons are the main moons of each planets, according to data used as reference (see below, Credits section).

The web application is up and running at https://interstellai.re !

Review my code

We very much like feedback on our work, and we are aware that some of the features are broken and needs more work done (e.g. the drag and drop list only drags and drops in Firefox).

So feel free to write us to share your thoughts. However we probably won't care for feature requests, as this is a school project.

Getting started

The dev environment used is composed of a VM provisionned and orchestrated with Vagrant and Puppet. The [website PuPHPet] provides the Puppet configuration for provisionning the VM.

First deployment

Requirements

  • Virtualbox
  • Vagrant >= 2.0

Deployment

# unzip the vagrantbox.zip file in the local folder.
$ unzip vagrantbox.zip
# Launch set_hosts.sh script
$ sudo sh sethosts.sh
# Powering VM and provisionning it with Vagrant
$ vagrant up

Once the Vagrant box is up and running, some configuration is needed inside the VM to deploy back-end correctly.

# Step inside the Vagrant box
$ vagrant ssh
# Move to web root
(@stellarisen-lamp) $ cd /var/www/stellarisen
# Launch deployment script
(@stellarisen-lamp) $ ./deployment_inside.sh

Use of Vagrant box

The root of the Vagrant environment is the folder including Vagrantfile and the .vagrant folder. All Vagrant commands must be launched from the Vagrant root folder.

Main commands

Starting and provisionnig the development server

$ vagrant up

Force provisionning of the Vagrant box after modification of its configuration

$ vagrant provision

Cleanly suspend the development server

$ vagrant suspend

Force kill the production server (might break things)

$ vagrant halt

When there is a problem

$ # You can go grab a coffee
$ vagrant destroy && vagrant up

Connect to vagrant box session

$ vagrant ssh

More informations on this page

Debug JS in Firefox

Debbugging client-side JS code requires extensions in editors like Atom and VS Code. Some IDEs like Webstorm include a connector by default.

Add this configuration with theses properties in the IDE debugger :

For more information on the Firefox Debugger, see this MDN page.

Debugging can be done directly inside the browser through the dev tools.

PHP & XDebug

All XDebug server configuration is taken care of in the Vagrant box configuration generated by PuPHPet. All XDebug settings can be tweaked in the puphpet/config.yaml file and applied with vagrant provision. Most of it is taken care of and will work out of the box. If debugging does not start, it most likely is a client problem.

With VS Code

The configuration properties for all IDE's and editor's debbugers might look like this JSON file :

    {
      "name": "Listen for XDebug",
      "type": "php",
      "request": "launch",
      "port": 9000,
      //Your project's path in the server
      "pathMappings": {
          "/var/www/stellarisen/": "${workspaceFolder}/",
      },
      "stopOnEntry": true
    }

This example is specifically the debugger configuration for VS Code, but all debuggers needs roughly the same informations.

Some might need extensions. VS Code needs php-debug extension to be able to work.

With Atom

With Atom, packages php-debug and atom-debug-ui are recommended to use XDebug. The atom-ide-ui debug panel won't work with php-debug, so it is recommendend to disable it during PHP debugging to avoid confusion between breakpoints set by atom-debug-ui and atom-ide-ui's debugger.

Settings > atom-ide-ui > Enabled features > Enable debugger > set to "Never enabled"

The extension needs to now the path mappings of the local files to the remote server files.

The mappings is stored in a JSON object. For example :

[
	{
		"localPath":"/the/absolute/path/to/stellarisen",
		"remotePath":"/var/www/stellarisen"
	},
	{
		"remotePath":"/var/www/stellarisen/testfolder",
		"localPath":"/the/absolute/path/to/stellarisen/testfolder"
	}
]

With VS Code, one can use the php-debug extension that is better integrated with the native debugger of the editor.

Configuration of the debugger then is stored with other debugger configuration in file .vscode/launch.json :

{
  "version": "0.2.0",
  "configurations": [
    {
      // ... Other configurations, like for client-side JS debugging
    },
    {
      "name": "Listen for XDebug",
      "type": "php",
      "request": "launch",
      "port": 9000,
      //Your project's path in the server
      "pathMappings": {
          "/var/www/stellarisen/": "${workspaceFolder}/",
      },
      "stopOnEntry": true
    }
  ]
}

Recovering server dependancies

The Composer dependancy manager is used to retrieve all libraries needed by the API, including development server.

In ${StellarisenRoot}/api folder :

$ composer install

This command is taken care of by the deploy_inside.sh script which the user should have launch at first deployment. However, one can remove PHP dependanies and reinstall them to ensure the correct version of vendor packages is provided.

Documentation

Documentation is a love letter you write to your future self.

  • Damian Conway

Here lives the documentation of the project.

Credits

We thank all people and organization for the already existing tools and data that helped us create this school project.

Planets and moons data are from NASA :

Star position on the skymap is in J.2000. It is the position of stellar objects on the January 1st, 2000.

Star data is from the HYG database.

Data on constellations and moons and planets textures comes from Stellarium. Be sure to check out this amazing, inspiring piece of open-source software !!

PuPHPet is a tool made by Juan Treminio.

About

Web project AP4 ISEN 2018/2019

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published