Mission:

Our company org chart consists mostly of teams + their project managers. teams.suse.com is an application that gives an overview about the various SUSE team resources like org-chart, office locations, mission descriptions, links to team pages/blogs etc. It should combine the various data sources that are already there (eguide, floor, externaltools etc.) and provide a way to enrich this data.

Goals for this hackweek are:

  • Responsive layout
  • Team data can get changed
  • Users can change their job title
  • onboarding.suse.com replaced

See the site in action: https://geekos.prv.suse.net

32780216-c73e3874-c940-11e7-89d1-12233646e24e 42451512-c542a2d8-8387-11e8-9dec-2ac5c2870de5

Repositories:

Looking for hackers with the skills:

ldap web design vuejs javascript frontend floor

This project is part of:

Hack Week 15 Hack Week 16 Hack Week 17

Activity

  • over 6 years ago: pvorel liked this project.
  • over 6 years ago: rsalevsky joined this project.
  • over 6 years ago: digitaltomm liked this project.
  • over 6 years ago: thutterer liked this project.
  • over 6 years ago: vuntz liked this project.
  • over 6 years ago: pdostal liked this project.
  • over 6 years ago: tampakrap liked this project.
  • over 6 years ago: dmaiocchi liked this project.
  • about 7 years ago: hennevogel liked this project.
  • about 7 years ago: digitaltomm added keyword "javascript" to this project.
  • about 7 years ago: digitaltomm added keyword "frontend" to this project.
  • about 7 years ago: digitaltomm added keyword "floor" to this project.
  • about 7 years ago: digitaltomm added keyword "vuejs" to this project.
  • almost 8 years ago: xgonzo liked this project.
  • almost 8 years ago: farahschueller liked this project.
  • almost 8 years ago: digitaltomm joined this project.
  • almost 8 years ago: kalabiyau liked this project.
  • almost 8 years ago: kalabiyau started this project.
  • almost 8 years ago: bmwiedemann liked this project.
  • almost 8 years ago: okurz liked this project.
  • almost 8 years ago: hennevogel added keyword "ldap" to this project.
  • almost 8 years ago: hennevogel added keyword "web" to this project.
  • almost 8 years ago: hennevogel added keyword "design" to this project.
  • almost 8 years ago: hennevogel originated this project.

  • Comments

    • kalabiyau
      almost 8 years ago by kalabiyau | Reply

      @henne, we have working base for you in RoR - look at https://github.com/SUSE/HiGecko/tree/master/app/models

      that is using floor which already uses LDAP, so half is already done, but there is some problems with data availability. I have a story to tell about it.

      Result is at http://onboarding.suse.com/

    • hennevogel
      almost 8 years ago by hennevogel | Reply

      @kalabiyau don't know if I'm going to work on this so I guess it's better to tell your story in here so everybody knows :-)

    • kalabiyau
      almost 8 years ago by kalabiyau | Reply

      @henne, I cannot write that story here because it is a secret :) Anyone who would like to work on that could just stop by and I will gladly tell that story f2f.

    • dleidi
      over 6 years ago by dleidi | Reply

      Hi guys. I've found this project very cool so far. Thank you for this add-emoji

      I have a proposal for a feature improvement. I added an issue in the project here. Let me know what do you think about it, and if you're interested in implementing it or not. Thank you.

    • lproven
      over 6 years ago by lproven | Reply

      How about just ensuring that Geekos can find everyone who is in Floor and show any info in Floor that isn't in Geekos? https://floor.nue.suse.com/

    • pagarcia
      over 5 years ago by pagarcia | Reply

      What's the license? This is a very useful piece of software. Opening it to the community and getting e. g. Active Directory integration could make it very popular.

    Similar Projects

    Kanidm: A safe and modern IDM system by firstyear

    Kanidm is an IDM system written in Rust for modern systems authentication. The github repo has a detailed "getting started" on the readme.

    Kanidm Github

    In addition Kanidm has spawn a number of adjacent projects in the Rust ecosystem such as LDAP, Kerberos, Webauthn, and cryptography libraries.

    In this hack week, we'll be working on Quokca, a certificate authority that supports PKCS11/TPM storage of keys, issuance of PIV certificates, and ACME without the feature gatekeeping implemented by other CA's like smallstep.

    For anyone who wants to participate in Kanidm, we have documentation and developer guides which can help.

    I'm happy to help and share more, so please get in touch!


    Fix RSpec tests in order to replace the ruby-ldap rubygem in OBS by enavarro_suse

    Description

    "LDAP mode is not official supported by OBS!". See: config/options.yml.example#L100-L102

    However, there is an RSpec file which tests LDAP mode in OBS. These tests use the ruby-ldap rubygem, mocking the results returned by a LDAP server.

    The ruby-ldap rubygem seems no longer maintaned, and also prevents from updating to a more recent Ruby version. A good alternative is to replace it with the net-ldap rubygem.

    Before replacing the ruby-ldap rubygem, we should modify the tests so the don't mock the responses of a LDAP server. Instead, we should modify the tests and run them against a real LDAP server.

    Goals

    Goals of this project:

    • Modify the RSpec tests and run them against a real LDAP server
    • Replace the net-ldap rubygem with the ruby-ldap rubygem

    Achieving the above mentioned goals will:

    • Permit upgrading OBS from Ruby 3.1 to Ruby 3.2
    • Make a step towards officially supporting LDAP in OBS.

    Resources


    WebUI for your data by avicenzi

    A single place to view every bit of data you have.

    Problem

    You have too much data and you are a data hoarder.

    • Family photos and videos.
    • Lots of eBooks, TV Shows, Movies, and else.
    • Boxes full of papers (taxes, invoices, IDs, certificates, exams, and else).
    • Bank account statements (multiple currencies, countries, and people).

    Maybe you have some data on S3, some on your NAS, and some on your local PC.

    • How do you get it all together?
    • How do you link a bank transaction to a product invoice?
    • How to tag any object type and create a collection out of it (mix videos, photos, PDFs, transactions)?
    • How to store this? file/folder structure does not work, everything is linked together

    Project Description

    The idea is a place where you can throw all your data, photos, videos, documents, binaries, and else.

    Create photo albums, document collections, add tags across multiple file-formats, link content, and else.

    The UI should be easy to use, where the data is not important for now (could be all S3 or local drive).

    Similar proposals

    The closest I found so far is https://perkeep.org/, but this is not what I'm looking for.

    Goal for this Hackweek

    Create a web UI, in Svelte ideally, perhaps React.

    It should be able to show photos and videos at least.

    Resources

    None so far, this is just an idea.


    Longhorn UI Extension (POC) by yiya.chen

    Description

    The goal is to create a Longhorn UI extension within Rancher using existing resources.
    Longhorn’s UI is built using React, while Rancher’s UI extensions are built using Vue. Developers will explore different approaches to integrate and extend Longhorn’s UI within Rancher’s Vue-based ecosystem, aiming to create a seamless, functional UI extension.

    Goals

    • Build a Longhorn UI extension (look and feel)
    • Support theme switching to align with Rancher’s UI

    Results

    • https://github.com/a110605/longhorn-hackday
    • https://github.com/a110605/longhorn-ui/tree/darkmode
    • https://github.com/houhoucoop/hackweek/tree/main/hackweek24

    Resources

    • Longhorn UI: https://github.com/longhorn/longhorn-ui
    • Rancher UI Extension: https://extensions.rancher.io/extensions/next/home
    • darkreader: https://www.npmjs.com/package/darkreader
    • veaury: https://github.com/gloriasoft/veaury
    • module federation: https://webpack.js.org/concepts/module-federation/


    Design the new UI for storage configuration at Agama by ancorgs

    Description

    We are in the process of re-designing the web user interface to configure storage at Agama. We expected to have a clear idea of what we wanted before starting Hack Week. But the idea is still not that clear. So I will use use my Hack Week time to try several prototypes since I really want this to be done.

    Goals

    Have a prototype using Patternfly components and addressing all the use-cases we want to cover. Easy for the easy cases. Capable for the complex ones.


    Agama installer on-line demo by lslezak

    Description

    The Agama installer provides a quite complex user interface. We have some screenshots on the web page but as it is basically a web application it would be nice to have some on-line demo where users could click and check it live.

    The problem is that the Agama server directly accesses the hardware (storage probing) and loads installation repositories. We cannot easily mock this in the on-line demo so the easiest way is to have just a read-only demo. You could explore the configuration options but you could not change anything, all changes would be ignored.

    The read-only demo would be a bit limited but I still think it would be useful for potential users get the feeling of the new Agama installer and get familiar with it before using in a real installation.

    As a proof of concept I already created this on-line demo.

    The implementation basically builds Agama in two modes - recording mode where it saves all REST API responses and replay mode where it for the REST API requests returns the previously recorded responses. Recording in the browser is inconvenient and error prone, there should be some scripting instead (see below).

    Goals

    • Create an Agama on-line demo which can be easily tested by users
    • The Agama installer is still in alpha phase and in active development, the online demo needs to be easily rebuilt with the latest Agama version
    • Ideally there should be some automation so the demo page is rebuilt automatically without any developer interactions (once a day or week?)

    TODO

    • Use OpenAPI to get all Agama REST API endpoints, write a script which queries all the endpoints automatically and saves the collected data to a file (see this related PR).
    • Write a script for starting an Agama VM (use libvirt/qemu?), the script should ensure we always use the same virtual HW so if we need to dump the latest REST API state we get the same (or very similar data). This should ensure the demo page does not change much regarding the storage proposal etc...
    • Fix changing the product, currently it gets stuck after clicking the "Select" button.
    • Move the mocking data (the recorded REST API responses) outside the Agama sources, it's too big and will be probably often updated. To avoid messing the history keep it in a separate GitHub repository
    • Allow changing the UI language
    • Display some note (watermark) in the page so it is clear it is a read-only demo (probably with some version or build date to know how old it is)
    • Automation for building new demo page from the latest sources. There should be some check which ensures the recorded data still matches the OpenAPI specification.

    Changing the UI language

    This will be quite tricky because selecting the proper translation file is done on the server side. We would probably need to completely re-implement the logic in the browser side and adapt the server for that.

    Also some REST API responses contain translated texts (storage proposal, pattern names in software). We would need to query the respective endpoints in all supported languages and return the correct response in runtime according to the currently selected language.

    Resources


    Try to render Agama in a TUI browser by ancorgs

    Description

    Agama is a new Linux installer that will be very likely used for SLES 16. It offers a modern and convenient web interface that can be executed both locally and remotely.

    But of course some users will miss the old TUI (ncurses) interface of the YaST installer.

    So I want to experiment whether would it be possible to render a simplified version of the web interface for TUI browsers. That's only doable and maintainable if we keep the current technology stack we use for rendering the full-blown page, simply replacing complicated UI elements with others that are easy to render. That means the browser would need to support Javascript.

    Chawan seems to be almost there regarding support for Javascript, XHR and related technologies. But according to this conversation, the next missing piece would be to support recursive import of module script tags.

    Unfortunately, Chawan is written in Nim and I'm pretty sure a week is not enough time for me to learn Nim, implement the feature at Chawan and then fix whatever is the next obstacle on the Agama side.

    But if someone could take care of the Nim part, I would do the same with the Agama one. So this is basically a call for help to get this project even started.


    Editor mode at Agama web interface by ancorgs

    Description

    Agama is a new Linux installer that will be very likely used for SLES 16.

    It takes a configuration (in JSON format) as input. And offers several interfaces to build that configuration in an easy and interactive way.

    I was considering the possibility to add to the web interface a "text editor" mode similar to the XML editor available at virt-manager. That could be used to see how the changes in the UI translate into changes on the configuration.

    Goals

    • Refresh my knowledge about UI development for Agama, since there was a major overhaul recently (adopting TanStack Query) and I need to learn the new way to do things.
    • Please hackers who always want to know how things work internally. :-)


    obs-service-vendor_node_modules by cdimonaco

    Description

    When building a javascript package for obs, one option is to use https://github.com/openSUSE/obs-service-node_modules as source service to get the project npm dependencies available for package bulding.

    obs-service-vendornodemodules aims to be a source service that vendors npm dependencies, installing them with npm install (optionally only production ones) and then creating a tar package of the installed dependencies.

    The tar will be used as source in the package building definitions.

    Goals

    • Create an obs service package that vendors the npm dependencies as tar archive.
    • Maybe add some macros to unpack the vendor package in the specfiles

    Resources