/meilix-generator

WebApp for generating ISO image

Primary LanguageCSSGNU Lesser General Public License v3.0LGPL-3.0

Meilix Generator

Meilix Generator

Meilix-Generator is a webapp which generates iso using meilix script.

  • fossasia/meilix consists the script of a Linux Operating System based on Lubuntu. It uses Travis to build that script to result in a release of an iso file.
  • Now we thought an idea of building an autonomous system to start this build and get the release and in the meanwhile also make some required changes to the script to get it into the OS. We came up with an idea of a webapp which ask user it’s email id and tag of the build and till now a picture from the user which will be set as a wallpaper. Means user can able to config its distro according to its need through the graphical interface without a single line to code from the user end.
  • Through the webapp, a build button is taken as an input to go to a build page which triggers the Travis with the same user configuration to build the iso and deploy it on Github page. The user gets the link to the build on the next page only.
  • Thanks to Travis API without which our idea is impossible to implement. We used a shell script to outframe our idea. The script takes the input of the user’s, repository, and branch to decide to where the trigger to take place.

GSoC 2017 Travis branch Gemnasium Heroku Code Climate codecov Codacy branch grade Gitter

Communication

Please join our mailing list to discuss questions regarding the project: https://groups.google.com/forum/#!forum/meilix

Our chat channel is on Gitter here: gitter.im/fossasia/meilix

New Features!

  • User can give their own configuration
  • Travis will build for them
  • Github will release the iso
  • User can upload wallpaper which will be set as desktop background

You can

  • Get the iso within 20 minutes of starting of the build

Meilix Generator can generate iso for you based upon your configuration and need.

The main aim for the project is to help a user/organisation to make its own linux distro which he/she can use, share and distribute.

Technologies Used

Meilix-Generator uses a number of open source projects to work properly:

  • Flask - Microframework powered by python
  • Bootstrap - Responsive frontend framework for webapp
  • Shell - Script used for triggering Travis using Travis API
  • Heroku - Webapp deployed here
  • Travis - Continuous Integration which build the iso
  • Github Release - Deploying the iso here

Components and its working

  1. Webapp

The source of the webapp frontend can be found here. It consists of:

  1. Generator

The generator runs on flask framework, using the main app script

  1. Scripts
  1. Requirement File

This contains the required packages for running the app.

  • pip install --upgrade -r requirements.in will install latest packages
  • Note that if you would like to change the requirements, please edit the requirements.in file and run this command to update the dependencies: pip-compile --output-file requirements.txt requirements.in fix the versions that definitely work for an eternity.
Working

Webapp ask user for their email-id and event name and a wallpaper which will further be the default wallpaper of the distro. The given event name is used as a tag name of the release. Heroku sends these data to Travis to trigger the build. After successful build Travis deployed the iso in the Github Release of the repository whose information is provided in travis_tokens.

Installation

Please go through all the docs before starting the development process

The meilix-generator can be easily deployed on a variety of platform. Detailed platform specific installation instructions have been provided below:

  1. Local Installation
  2. Deployment on Heroku

Accessing the Generator Web App

Generator Screencast

  • Add your email id, event-name, upload an wallpaper (this picture will be set as the default wallpaper).

  • Then click on build button to start the building of the iso with the given configuraiton.

  • You will be given a link on the next page from which iso can be downloaded after 20 minutes.

Contributions, Bug Reports, Feature Requests

This is an Open Source project and we would be happy to see contributors who report bugs and file feature requests submitting pull requests as well. Please report issues here https://github.com/fossasia/meilix-generator/issues

Issue and Branch Policy

Before making a pull request, please file an issue. So, other developers have the chance to give feedback or discuss details. Match every pull request with an issue please and add the issue number in description e.g. like "Fixes #123". Go for only one issue in a pull request

We have the following branches

  • master All development goes on in the master branch. If you're making a contribution, you are supposed to make a pull request to master. PRs to the branch must pass a build check and a unit-test check on Travis.

Contributions Best Practices

Write-up containing project buildup

License

This project is currently licensed under GNU Lesser General Public License v3.0 (LGPL-3.0). A copy of LICENSE.md should be present along with the source code. To obtain the software under a different license, please contact FOSSASIA.

If you like the project, don't forget to star it.