Coder Social home page Coder Social logo

rustysnek / elixirus Goto Github PK

View Code? Open in Web Editor NEW
3.0 2.0 0.0 993 KB

Alternative Frontend for Synergia Learning Managment System written in Elixir LiveView for better user experience.

Home Page: https://elixirus.rustysnek.xyz

Elixir 57.40% CSS 0.53% JavaScript 3.42% Nix 0.21% HTML 29.56% Python 7.68% Shell 0.31% Dockerfile 0.86% Batchfile 0.02%
elixir-phoenix learning-management librus librus-api liveview phoenix-framework students librus-apix

elixirus's Introduction

Elixirus

A better replacement for Synergia Learning Managment System frontend

Tech used

  • Phoenix LiveView - Rich, real-time user experiences with server-rendered HTML 🐦
  • bun - Incredibly fast JavaScript runtime, bundler, test runner, and package manager πŸ₯–
  • erlport - Connecting Elixir with Python πŸ§ͺ ❀️ 🐍
  • librus-apix - Web Scraper for Librus Synergia written in Python πŸͺ›πŸ

Working with devenv

Run direnv allow to allow .envrc execution

Prerequisites

  • bun
  • erlang
  • elixir 1.15
  • python 3.11
  • pip

Setup

  • To simplify setup you can run: sh initialize.sh

  • Manual setup

    Set MIX_BUN_PATH and PYTHONPATH:

    export MIX_BUN_PATH=$(which bun)
    export PYTHONPATH="$PWD/priv/librus-apix:$PWD/priv/librus-apix/venv/lib/python3.11/site-packages"

    Install mix and bun dependancies:

    mix deps.get
    bun install

    Setup python environment:

    python -m venv $PWD/priv/librus-apix/venv
    source $PWD/priv/librus-apix/venv/bin/activate
    pip install -r $PWD/priv/librus-apix/requirements.txt
    deactivate
  • Start Phoenix endpoint with mix phx.server or inside IEx with iex -S mix phx.server

    Now you can visit localhost:4001 from your browser.

Tasks

Todo

  • Think of some cool extras to include 😲

In Progress

  • Make stuff more appealing to user's eye
    • Mobile scalibility down to 320px

Done βœ“

  • Announcements Page πŸ“―
    • Parse descriptions properly πŸ“―
  • Schedule Page πŸ“†
    • Add schedule page πŸ“‘
    • Add schedule to Timetable πŸ—“οΈ
  • Overview Page πŸ“„
  • Host the application πŸš€
  • Docker 🐳
    • Auto deploy πŸ“¦
  • Attendance Page βœ”οΈ
  • Add frequency percentage
  • Grades Page πŸ“‘
    • Calculating averages πŸ’―
    • Add nice filtering for subjects and grades 🧐
  • Homework Page πŸ“°
  • Timetable page πŸ—“οΈ
    • Add timeline indicator πŸ•š
    • Add google calendar functionality
    • Add details modal πŸ”
  • Messages Page πŸ“«
    • Handle recieved messages πŸ“©
    • Sending messages πŸ“©
    • Add message content modal πŸ“‘
  • Authentication
    • Add a modal for quick login to pages

elixirus's People

Contributors

rustysnek avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

elixirus's Issues

more features

Add schedule to timetableβœ”οΈ
Add healthcheck status + token status and option to keep it alive after logging in βœ”οΈ
Count total absences βœ”οΈ
Better dropdown placements for mobile βœ”οΈ
Next weeks for timetable βœ”οΈ
choose token ttl when logging in βœ”οΈ
reply in messages βœ”οΈ
Add google calendar to schedule
Next months for schedule
save timetable week in url
Save token ttl options in local storageβœ”οΈ

Fix stuff

  • fix semester cookie and add a way to select it βœ”οΈ
  • fix flowbite tooltips βœ…
  • fix mobile navigator β˜‘οΈ
  • add grade averages 🏁
  • add weight to grade view βœ…
  • maybe do something with how messsages look ~ postponed

slow replies

as of now replies load all group's recipient's in search of recipient id. This takes some time and isn't really efficient. Find a better solution...

Moar improvements ✨

Do something about scroll sensitivity on mobile in timetable -
Fix the initial semester value to be actually correct +
Add general average for each semester +
Group navigation into categories +
create overview for each category +

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.