Giter Club home page Giter Club logo

einstore's Introduction

Einstore

Slack Docker macOS Ubuntu Apiary.io API documentation for Einstore Swift 4 Vapor 3

Enterprise distribution platform for mobile apps ... the first open source appstore

Please help us, to support the project and our sales case, it would help us if we kne how many users Einstore has and who they are. We will be extremely grateful to anyone who will touch base with any feedback at all ... [email protected]

Screenshots

 

Requirements:

Basic usage

  • To install run make install-db
  • To start and stop the project make up and make stop
  • Run make help or just make for other commands
  • Optionally look into the Makefile for all remaining scripts

Login

Default username and password is [email protected]/sup3rS3cr3t

Demo mode

  • To install demo data run make install-demo
  • To start and stop the project make up and make stop

Documentation

The main documentation for Einstore can be found in our Wiki here on Github. For API documentation go to our Einstore API documentation

Shortcuts

Slack support and community

If you don't like going through documentation, feel free to join our slack channel and get help using and installing this product from us directly and other experienced users right away. Slack

Main dependencies

License

Einstore is distributed under an Apache 2 license and can be shared or used freely within the bounds of the license itself. Third party components used (like Vapor framework and all its components) in this software are mainly MIT licensed although some are Apache 2 as well.

einstore's People

Contributors

mikulas avatar rafiki270 avatar viliamkopecky avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

einstore's Issues

User roles

  • tester (all builds)
  • developer (api keys and all builds)
  • admin (settings and all)

Clients

New user role:

  • client (just selected builds)

New db table client teams contains stuff like:

  • Ford - can access certain 5 apps
  • Volvo - another 2
    We will also need a join table like users_clients to store connections. When user is upped from clients to other role, the join table get's cleared

API to show remaining counts on tags

This endpoint will accept array of selected tags and will offer tags that are still selectable for certain apps.

Needs to be an all posgresql solution (even if we have to use some plugins, elastic search is not an option)

Tags can be created with an upload

  • Any number of tags can be created with the app using one of the following techniques:

  • using query string on upload &tags=tag1,tag5'version%201.0

  • editting an existing app and sending an array of tags

Forgotten password

User should receive an email with password reminded if requested (by giving us email or nickname)

Apps belong to a team

App can only belong to one team

This just needs an additional field team_id on the App

Docker potrebuje nejaky persistent storage

V zakladu je potreba nekam lokalne ukladat data (appky) pokud nebude nastaveny S3 (nechci to na firmy nutit protoze nektery maj trosku problem s Amazonem)

Tzn, je potreba udelat nejaky Volume ... Boost budto muze dostat cestu pres LOCAL_ROOT a to kdyz neni tak to zkusi pouzit HOME nez to spadne ... veci co se rozbalujou a podobne sou v /tmp/Boost/

Jak tohle vyresime?

Setup deployment

docker image

  • when pushed to master, a new Docker image should be created
  • when release is made on github a new relevant version of a docker image should be created

our deployment:

  • api on appstore.mangoweb.cz (needs an SSL certificate or we won't download a single app on iOS!)
  • beta on appstore.mgw.cz (also on SSL please but enable http:// too for testing, different DB obviously)

self hosting:

  • make deploy to Heroku button work with external database (is there anything like an input field to do env vars on heroku?)
  • make deploy to Heroku work with internal database (LiveUI Heroku account to test)
  • web on www.boostappstore.com
  • document deployment in bullet points on the Boost Github Wiki

Please look into (nice to have):

  • Make an AWS image so the project can be launched on EC2 easily

Back to Dashboard after delete build

  • after "delete this build" and "delete all builds" users should return to the dashboard
  • delete app does not seem to work despite "delete all builds" (still present on dashboard)

Deployment

  • Add GD lib ti the base docker image
  • Add ApiCore to ci.liveui.io so we can build and test. If possible on both mac and linux
  • Make appstore.beta.liveui.io
  • Make appstore.liveui.io
  • Run deployment to beta when we push to master (through Jenkins, run in DEBUG)
  • Run deployment to live when we push to release (through Jenkins, can have a better system or branch name, run in RELEASE)

Upravit docker

Aby to pouzivalo public image co uz ma python a Javu ... Dockerfile v /Docker/Base/Dockerfile

Nejak nevim jak to nahostovat ... :( ... ale pokud by slo tak na LiveUI ucet u dockeru, ne manGoweb ...

Upload a file

  • AppStore can hold any files (useful for distributing frameworks and libraries)
  • Initially store file in the local filesystem
  • New App entry is created (most likely empty bundle ID)

Docker compose

  • Standalone DB + API
  • Persistent DB
  • Persistent file storage
  • Adminer (will strip down for main compose later)

Mailing

mails are not sent out now

Missing design - Web

  • Loading states for AJAX calls
  • Upload/CI API keys administration
  • My account (change password, email, etc)
  • Team selector (dropdown? each team has a colour and two letter initials like slack if there is no image, default is show apps from all teams)
  • Team admin
    • Delete team
    • Leave team
    • Accept invite
    • Send invites (like Slack)
    • Invite people from other teams (like github)

JWT Authentication

  • User logs in with username/email and password and gets a persistent token in response
  • JWT token in the headers. (/auth)
  • JWT token is valid for 30 seconds and is extended with every request
  • When JWT token expires, persistent token is used to create a new one (/auth)

Slack integration

Slack post is sent when build is processed

This will require some local settings

Upload API keys

  • When an API key is created, the result is shown to the user in response
  • Later (get or edit) only API key name is shown
  • API key is hashed using SHA256
  • API key belongs to a team

Overview registered users

  • overview all registered an invited user
    ideal way with overview to which team(s) the user belongs (and also users who still do not belong to any group). My suggestion: That could perhaps be realized under "All teams" --> "Team & members" (currently is grayed out).

DB based settings

Admin will need a database based settings where SMTP, Mailgun, Slack, keys and logins are being stored
I would probably make groups (rows) which contain json with multiple available values if more than one value per service is necessary

Design tags database

  • Tags are related to builds and apps
  • User needs to be able to search all apps across the teams he's got access to based on a given number of tags
  • User needs to be able to search all apps in a single team based on a given number of tags
  • User needs to be able to see how many apps are still in remaining tags/filters (àla amazon item properties)
  • All only using PostgreSQL or it's modules, no elastic search is available

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.