Giter VIP home page Giter VIP logo

maevsi's Introduction

ci status license status

maevsi

Find events, guests and friends: maev.si.

This project is deployed within the maevsi_stack in accordance with the DargStack template to make deployment a breeze.

Welcome

Table of Contents

  1. Development
    1. Frontend only
    2. Fullstack
  2. Technology

Development

The setup for frontend development is easy! πŸ’…

The setup for backend development is more complex as it consists of numerous services which are best set up containerized πŸ§‘β€πŸ’»

You're encouraged to ask questions on maevsi's Discord if the setup could go smoother!

Frontend only

click here for instructions

Preparation

  1. (optional) if you're on Windows, you might want to setup WSL to be able to use all Linux functionality this project utilizes
  2. install Git to download this project's modules and participate in version management
  3. install nvm to be able to switch the currently active Node.js version on your machine (useful when working on multiple Node.js projects)

Setup

  1. create a directory named maevsi in a directory of your liking

  2. download this repository into that newly created directory:

    cd maevsi
    git clone https://github.com/maevsi/maevsi.git
  3. switch into the maevsi subdirectory and setup Node:

    cd maevsi
    nvm install
  4. then install all dependencies using pnpm, which should include the src directory automatically:

    corepack enable
    pnpm install
  5. finally, start the frontend:

    cd src
    pnpm dev
  6. you should now be able to access maevsi under http://localhost:3000/! πŸŽ‰

Fullstack

click here for instructions

Preparation

  1. if you're on Windows, setup WSL to be able to use all Linux functionality this project utilizes
  2. install Git to download this project's modules and participate in version management
  3. install nvm to be able to switch the currently active Node.js version on your machine
  4. install mkcert for development certificate generation and installation, so that all services are available through https
  5. install Docker so that all services run in their containers
  6. install dargstack to bootstrap a Docker stack setup

Setup

  1. create a directory named maevsi in a directory of your liking

  2. download the project modules maevsi, maevsi_stack, sqitch and stomper into that newly created directory:

    cd maevsi
    git clone https://github.com/maevsi/maevsi.git
    git clone https://github.com/maevsi/maevsi_stack.git
    git clone https://github.com/maevsi/sqitch.git
    git clone https://github.com/maevsi/stomper.git
    • maevsi contains the frontend and database migrations
    • maevsi_stack is the service configuration
    • sqitch is the database migration service
    • stomper is the service that sends emails
  3. switch into the maevsi subdirectory and setup Node:

    cd maevsi
    nvm install
  4. then install all dependencies using pnpm, including the src directory:

    corepack enable
    pnpm install
  5. configure maevsi's DargStack then take note of the following output:

    cd ../maevsi_stack/src/development
    cp stack.env.template stack.env
    pnpm store path
  6. use the previous command's path output to fill the PNPM_STORE_DIR variabe using the editor of your choice:

    $EDITOR stack.env
  7. install a root development certificate on your system and create subcertificates for the application to have all services available under https:

    mkcert -install
    ./certificates/mkcert.sh

    Note that in a WSL setup mkcert does not import the root certificate authority into your browsers' certificate store. You'd need to manually add this certificate to your browsers' storage then. You can find the directory containing the certificate file by running mkcert -CAROOT.

  8. you are now ready to start everything up:

    cd ../../
    dargstack deploy
  9. finally, create the Docker development images for maevsi, sqitch and stomper so that their services start successfully:

    dargstack build maevsi
    dargstack build sqitch
    dargstack build stomper
  10. you should now be able to access maevsi under https://localhost! πŸŽ‰

    If there are issues, you can debug the services as described in the following "Container Management" section.

Container Management

To see if services are running or not you can use Portainer if you prefer a web view instead of the command line. Head to this gist for the Portainer setup command. When the container is running, you'll be able to access Portainer under https://localhost:9443. You may be asked to accept the risk of a self-signed certificate, which is ok to do at this time. On your local Portainer website, create a user, add an environment, start the Docker wizard, choose "Socket", name it e.g. "local" and close the wizard. Under "home", select the newly created environment then. You'll have access to all containers, images, volumes and more via the left sidebar then.

Technology

Nuxt

maevsi's People

Contributors

alexsteckler avatar azolus avatar dargmuesli avatar dependabot[bot] avatar deryeger avatar goatfried avatar goatfryed avatar imgbot[bot] avatar imgbotapp avatar lucasheld avatar myyxl avatar patrickmi avatar philgarb avatar renovate-bot avatar renovate[bot] avatar semantic-release-bot avatar snyk-bot avatar soerface avatar sriram-km 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

Watchers

 avatar  avatar  avatar

maevsi's Issues

feat: add robots.txt

There should be a robots.txt generated by @nuxtjs/robots with the following content:

User-agent: *
Disallow: /robots.txt
Allow: /
Sitemap: https://maev.si/sitemap.xml

Where the sitemap value comes from the NUXT_ENV_STACK_DOMAIN variable.

feat: add event groups

  • add event groups
  • get rid of event_groupings
  • allow to create an event similar to an existing one

Fallback logo (icon) is too large

The icon that appears as long as there is no color-scheme information available is displayed too large and thus moves other page content for a very short time on page load.

The automated release is failing 🚨

🚨 The automated release from the master branch failed. 🚨

I recommend you give this issue a high priority, so other packages depending on you could benefit from your bug fixes and new features.

You can find below the list of errors reported by semantic-release. Each one of them has to be resolved in order to automatically publish your package. I’m sure you can resolve this πŸ’ͺ.

Errors are usually caused by a misconfiguration or an authentication problem. With each error reported below you will find explanation and guidance to help you to resolve it.

Once all the errors are resolved, semantic-release will release your package the next time you push a commit to the master branch. You can also manually restart the failed CI job that runs semantic-release.

If you are not sure how to resolve this, here is some links that can help you:

If those don’t help, or if this issue is reporting something you think isn’t right, you can always ask the humans behind semantic-release.


Missing package.json file.

A package.json file at the root of your project is required to release on npm.

Please follow the npm guideline to create a valid package.json file.


Good luck with your project ✨

Your semantic-release bot πŸ“¦πŸš€

Migrate to Nuxt.js

We don't generate static pages from APIs only, so Nuxt is the more complete framework.

Hydration Issues

When logged in (only) the firefox console display "Uncaught (in promise) DOMException: Node.appendChild: Cannot add children to a Comment" on page load and "TypeError: t is undefined" when navigating.

JWT Isn't Refreshed

The current implementation that refreshes the JWT does not work. It wasn't expected that expired JWT cannot be used to refresh themselves. A proper refresh procedure is to be implemented that replaces the current – hacky – solution.

feat: ical support

It would be nice to be able to get an iCal file - preferably via E-Mail, so it is easy to save the event to a personal calendar.

Hashed File Upload

File upload, for example for profile pictures, should be stored as hash, to prevent duplicates. For this tusd hooks look like the appropriate solution.

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.