Coder Social home page Coder Social logo

lumitry / mymedia Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 663 KB

(working title) media library for people who hate using their browsers

JavaScript 7.41% TypeScript 16.84% HTML 1.32% Svelte 8.33% Sass 0.97% Rust 65.13%
entertainment media rust sqlite svelte sveltekit tauri

mymedia's Introduction

Hi there ๐Ÿ‘‹

I'm a second-year student at RIT with a "learning new technologies" problem:

  • Javascript (TypeScript, React, Next.js, Angular, Svelte + SvelteKit)
  • Java (Spring, Mockito, JUnit5)
  • Python (Flask-RESTful, Pytest)
  • SQL (PostgreSQL, Sqlite)
  • Rust (Tauri)

I have a project, myMedia, in the planning stages; I recently made the repo public! I'm considering switching the backend from Sqlite via Tauri to Pocketbase or some similar solution, to avoid writing a ton of messy Rust code (the stuff I've written thus far is admittedly bad, but I'm learning!).

I'm also working on my personal site, which I'm writing in Next.js, which has been exciting to learn about especially given how prevalent it is.

Currently looking for Software Engineering Co-ops in the Summer and Fall of 2024, as well as Spring of 2025.

mymedia's People

Stargazers

 avatar

Watchers

 avatar

mymedia's Issues

Test Suite

Creating a test suite that verifies everything is working properly, and keeping it updated is important.

Ideally, I'd be using Vitest and Playwright for the frontend, as well as, seemingly, the #[cfg(test)] mod in Rust.

  • Create test dataset (INSERT statements, basically) (Should include all valid media types)
  • Backend testing (Rust) (look into if there are other, simpler rust frameworks, maybe something with mocks? not sure yet)
  • Vitest
  • Playwright
  • Maybe some code coverage tool for sanity checking? I'm not aiming for a percentage since code cov is generally pretty flawed, but higher number is generally better.

Plugins?

I have no idea how to create a plugins/modification API, nor do I know what plugins would actually be necessary since I'm mostly developing this app for me.

I think Obsidian's approach to their "core plugins" is pretty good: by default, a reasonable selection of plugins that were made by the devs are selected. Power users may choose to enable more of them. To make this app simple for users who don't want something extremely customizable and complex, something similar could be implemented with a set of "core plugins". The ones disabled by default would be the more complicated ones, especially those that require some level of configuration to work (the app should just work "out of the box").

As a feature add, something similar to browser extension files could be added where power users could develop/find extensions and add them via importing some file. But I have no idea how that'd be implemented. Something simpler would be scripts.

Add License

Seems like AGPLv3 is probably the best bet since this can be run over a network.

Overall though, I don't want to step on anyone's toes. Looks like both Tauri and Svelte use the MIT license so that one might work as well.

Editable data w/ good UI/UX

Obsidian Properties come to mind as an inspiration, but there are plenty of other good places to pull from.

Ideally, data editing happens inline, not via a modal like many tracker sites (anilist, backloggd) have it.

Will provide a Figma when I'm further along in the design process.

Basic Frontend

Just the very basics for now:

  • Display data without particular regard for formatting
  • Add input fields and buttons so that the database can be updated. Doesn't matter if they're relevant for now (e.g. ability to update name isn't the most useful thing in the world, but it's something simple)

Themes Support

The app by default has a dark UI. Theme support should be added at some point.

Currently unsure how they'll be defined. Custom themes should be possible with both import and export features; I like iTerm 2's implementation personally. Ideally, themes would get stored (i.e. in the repo) in the same file format as the theme exports, that way we only need one bit of logic for changing color variables.

Probably won't be the most in-depth theming system in the world.

As a temporary patch to get some of the same effects, adding a "custom css" page in the settings menu would allow users to overwrite certain styling. Not sure how easy that'd be to implement, especially since I'm currently using SASS for styling.

  • All colors should be SASS/CSS variables except where doing so doesn't make sense
  • SASS/CSS variables should be modifiable by some logic such that a theme switch is possible
  • Reading themes from file
  • Import/export themes
  • Theme repo

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.