Code Monkey home page Code Monkey logo

g2-frontend's Introduction

ZeusWPI

Zeus Extraordinary Uploading Service With Productive (Prolog) Interface

Development

Install SWI-Prolog using asdf.

asdf install

This project relies on Redis for performant session storage. You can start an instance using the provided docker-compose.devel.yml file.

Next create the required directories.

mkdir -p {data,files}

Then start the development (Live reload) server using:

swipl src/main.pl devel 5000

Or run the above steps by running make devel.

Visit your browser at http://localhost:5000.

Deployment

The deployment setup is contained in the provided docker-compose.yml file.

There are 3 environment variables to change:

Key Value
ZEUSWPI_CLIENT_ID The OAUTH Client ID
ZEUSWPI_CLIENT_SECRET The OAUTH Secret
ZEUSWPI_REDIRECT_URI The OAUTH Redirect URI (Set the correct domain)

You also need to create the required directories in this mode. As these will be mounted as volumes in the container.

mkdir -p {data,files}

Then start with:

docker compose up -d

Adding admins

First the person you want make an admin has to log in to the application once. Then on the server find the user fact in the database data/user.db

assert(user(69,"the_admin",user)).

and update the record to

assert(user(69,"the_admin",admin)).

then restart the application.

g2-frontend's People

Contributors

abeforgit avatar dependabot[bot] avatar hannes-dev avatar jan-pieterbaert avatar maartenvn avatar mcbloch avatar redfast00 avatar robbe7730 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

g2-frontend's Issues

Add caching to api data

Right now a lot of components have to pass data causing long pass through streams of certain information.
Introducing a caching layer would allow these components to do a request by themselves.
If the data has already been fetched, it would not send a request, but rather return the cached result.

The cache layer should have the following characteristics:

  • Cache is session specific.
    Reloading the page will not serve the same cache, but rather build a new one. This is important since the data present is rather subjective to change.

  • Cache should be updated automatically when updating/deleting data
    Eg: when a project is deleted using DELETE /projects/{id} it should also be deleted from GET /projects or GET /projects/{id}

  • Cache should work completely transparent to the components

Add tags page

Add a tag page with:

  • Table with available tags
  • Ability to create tags
  • Ability to delete tags
  • Ability to modify tags

Add page specific titles

Add page specific titles so multiple tabs of G2 would be easier to manage.

eg:

  • Project pages would have the name and description in the title
  • Search page would have the query in the title
  • ...

Migrate to better routing syntax

Use router object syntax instead of the regular path syntax.
Using the regular path syntax can sometimes cause unwanted behaviour

Simple settings screen

Contains:

  • Link github organisation
    • 2 textfields for the app keys.

This app can be of the organization, then it will by default have access to the organizations information, or it can be of a user but then g2 will only be able to access what the user can access.

Project screen

List important files/docs

Show latest activity?

If linked to repository

List issues of repo
List branches of repo
Only be able to change state when logged in and authorized to edit.

Keep in mind that nested projects will be added in the feature and that this will be a central thing in the ui.

Home screen

  • List of top projects
  • A button to add a new project for logged in users.

Login will probably be directly with zeus oauth, as a start.
Have a button, probably just on the home screen to the login url, this will redirect to the zeus endpoint and afterwards redirect back to our app.
-> https://github.com/ZeusWPI/g2/wiki/Users

Project

Make it possible to:

  • make projects
  • add repos to projects
  • view projects

Add server-side rendering

Add server-side rendering support.

This would benefit the application in a few ways:

  • Better SEO: web crawlers are not able to load async data.
  • Ability to view the application without Javascript enabled.
  • Faster first contentful paint

Add new project screen

  • Ability to list repositories from linked organizations to link them to a new project.
  • Automaticaly set name of project to the same of the repository if chosen. Otherwise, chose your own name.

Port to @vue/composition-api instead of vue-class-component

The new composition API for Vue 3 is available under the official @vue/composition-api package. Since the composition API will be natively supported in Vue 3, it may be in our best interest to start using that instead. It will allow for:

  • Better Typescript support
  • Native implementation over a 3th party library
  • Easier migration to Vue 3 down the line
  • Easier to learn due to more resources available (part of the Vue core)

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.