GithubHelp home page GithubHelp logo

philipp-meier / edap Goto Github PK

View Code? Open in Web Editor NEW
6.0 1.0 0.0 1.27 MB

:date: A very simple .NET appointment planner with OpenID Connect integration, that can be hosted within a Docker container.

License: MIT License

HTML 38.87% C# 55.89% CSS 2.49% JavaScript 0.53% Shell 1.11% Dockerfile 1.11%
appointment appointment-planner asp-net-core dotnet dotnet-core poll polls razor-pages doodle-like docker

edap's Introduction

๐Ÿ“… .NET Appointment Planner

CI MIT License

A simple .NET appointment planner with OpenID Connect (OAuth) integration, that can be hosted within a Docker container.

Note: Participation-links like https://localhost:7298/polls/participate/e84203a2509748d2bcafa209365707bc do not require an authenticated user.

Preview

Use cases

  • As an administrator I want to create polls, so that I can find the date, where most of the participants are available.
  • As an administrator I want to generate invitation links, so that I can send them to people that will participate in the poll.
  • As an administrator I want to close and archive a poll, so that the result can't be changed after a specific date.
  • As a user I want to open an invitation link, so that I can participate in a poll.

Features

  • Simple admin interface for creating polls.
  • Simple user interface to see the current result and vote.
  • Invitation links
  • Docker support
  • OpenID Connect (OAuth) integration

Restrictions (Current version)

  • Only the administrator can create polls.
  • Every authenticated "Edap"-client user is currently an administrator (no claim checks).

Tech stack

  • ASP.NET Razor pages, C#, EF Core, Sqlite3

Run

  • Step 1: Create a poll database in the "Data" directory.
    mkdir Data && sqlite3 Data/polls.db "VACUUM;"

  • Step 2: Update the database.
    dotnet ef database update

  • Step 3: Enter your IdP data in the "IdentityProvider"-section of the appsettings.json.

  • Step 4: Run the application
    dotnet run or dotnet watch for hot reload

Deployment

  • Step 1: Build the image and publish it to your docker registry.
    docker login <DOCKER_REGISTRY_HOST>
    docker build -t <DOCKER_REGISTRY_HOST>/edap .
    docker push <DOCKER_REGISTRY_HOST>/edap

  • Step 2: Create a volume on the host to persist data.
    docker volume create edap_volume

  • Step 3: Copy your polls.db database to the edap_volume.
    Use docker volume inspect edap_volume to find the location of the edap_volume.

  • Step 4: Download the image on the host machine and run the container.
    docker login <DOCKER_REGISTRY_HOST>
    docker pull <DOCKER_REGISTRY_HOST>/edap
    docker run --name edap -d -p 5850:80 --mount source=edap_volume,target=/app/Data <DOCKER_REGISTRY_HOST>/edap

edap's People

Contributors

philipp-meier avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

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.