Giter Site home page Giter Site logo

athena's Introduction

๐Ÿ‘‹

Interesting Projects

๐Ÿงฎ Omega CPU 2015 - 2018

The Omega CPU was my first major project. It is a 32-bit RISC processor with a custom instruction set and assembly language written in VHDL and deployed on a Xilinx Spartan-6 FPGA. I developed it with the assistance of mentors at the Bakken museum.

๐Ÿ•Š Athena 2018 - 2021

Athena is a proof-of-concept Discord bot that moderates servers through direct democracy. It was developed on and off from 2018 to 2021, and is the third iteration in the project (the other two being DDD and Direkt). Athena (then called DDD) was at first a chat-only service which moved to a web platform (like mee6). It is written using Vue, Node.JS, SQL and Discord.JS.

Other things I've worked on

๐Ÿฆพ FRC Robot 2020 - 2022

I particpated in my Highschool's FRC robotics team, Team BJORG. I contributed to the 2020 robot as a software developer and the 2022 robot as control systems lead. All of our code is on GitHub. The robot is programmed in Java and was an exercise in repository management considering the number of active developers we had.

athena's People

Contributors

shetaye avatar

Watchers

 avatar

athena's Issues

Handle resolving nonexistent resources

When resolving actions, Athena expects every ID to have an existing resource. This is guaranteed when the action is first made but is increasingly unlikely as time passes. This is especially true after executing an action that deletes a resource, such as delete role, after which the deleted role is guaranteed to not exist (Athena just deleted it!). No matter how we handle it, Athena mustn't crash and burn whenever this happens.

Athena should

  • Resolve nonexistent resources to an error message and continue to resolve the rest of the action
  • Archive a snapshot of needed names and resolve nonexistent resources using their archived names

Update documentation

The current documentation for Athena is not up to date for the new web app. The documentation should be updated to have at the very minimum guides on basic operations. It ideally would also include GIFs or screenshots to go along with the guide.

Address archive removal

After adding proposal resolution, the old usage counting method of permanently deleting archived resolutions does not work anymore. Every time a proposal is resolved, its server & user usage counters go up.

We can either:

  • Never delete archive items
  • Develop a new way to track archive usage

Changes in one action don't propagate to the others

When actions add to the resource list, their changes are not propagated to other actions that use their created resources. For example, a create role action creates a role that is then modified by change role permissions. Changing the new role's name in create role will not affect its displayed name in change role permissions.

This is likely attributable to Vue DOM update rules.

Add missing settings

The following settings are missing

Channels:

  • NSFW
  • Rate Limit
  • Bitrate

Server:

  • Banner
  • Icon
  • Region
  • News Channel
  • Rules Channel
  • System Channel (& Flags)
  • Widget
  • Splash Image
  • Content Filter
  • Verification Level

Actions & their parameters need a known cap

The number of actions a proposal can have and the number of variable parameters an action can have needs a known cap.

Proposed caps:

  • 100 actions per proposal
  • 50 users per parameter in permission & role actions

Fix various UI issues

Various small UI issues need to be fixed:

  • Server tiles have no background, only a gradient 01ca2b1
  • Non-Athena server tiles still take up space 01ca2b1
  • Proposal tiles are poorly spaced 532ce4b
  • Misalignment in proposal wizard
  • Countdown has misformatted text 1df823e

Improve proposal screen

The proposal view screen leaves a few things to be desired:

  • Auto-refresh when proposal expires (if in a reasonable amount of time)
  • Placeholder widgets while data loads

Prevent users from choosing invalid resources

As of now, users can choose roles, channels, or users that may not be applicable to an action. For example, any user can be chosen when selecting users to remove from a role. This is undesirable since the only place this is checked is the backend. The only thing the user sees is a create button that does nothing when they press it.

We can:

  • Provide an error message when an invalid choice is made
  • Remove invalid options from dropdowns

I'd much prefer the latter.

Use Github CI

Deployment can be made automatic with Github CI:

  • Build Docker image
  • Build Vue artifact
  • Update running ECS cluster with new Docker image
  • Update webpage bucket with new Vue artifact

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.