quivo: Watercolor of a daisy (Default)
[personal profile] quivo

Coding progress:

So I'm refactoring. AGAIN. If you want to take a look at how that's going, all that work is on the refactor3 branch on the github repo.

Why did you decide to do this?

Got tired of the way the project was currently structured, and I was going to need to change major shit anyway (injecting a custom user model into a Django project after you've done the very first migration basically requires weird project surgery), and none of the data I've been fucking with in the test db was worth wringing my hands over preserving.

What did you actually do??

  • changed fanarchive app name to fanfic. Already thinking about changing it to core because that's what it's effectively become, but whatever.
  • inserted a custom user model under a separate app. Basically just installed django-authtools, inherited from their well-done NamedUser, and called it a day. Separate app because I intend the archive-specific user logic (pseuds, profiles etc) to be separate from the user authentication logic (login, email & password).
  • inserted custom app for handling pseuds, then changed my mind and shoved the Pseud model under the core fanfic app.
  • decided to go on a jaunt into many-to-many land by defining the relationship between Pseuds and Fics with a couple special models
  • spent a possibly embarrassing amount of time playing with the db API, trying to make sure said defined relationship works as expected when creating Pseuds, Users, AuthorGroups and Authorships

What's next?

  • make sure deleting Authorships, Users, Pseuds and AuthorGroups also works as expected
  • add public_idfield to Pseud model and make pseud_name and public_id unique together (want this for anon pseud stuff)
  • add create_pseud function to the Pseud model. May also want to stick modify_pseud and delete_pseud in there.
  • put together basic data factory functions so I can generate sample fics for various test and demo purposes
  • TESTS. Main priority is:
    • make sure obvious operations work as expected
    • test custom functions
  • FORMS (need these for basically every CRUD operation for every model involved)
  • views + templates (rough, basic, but all the CRUD stuff needs this covered. Will lean heavily on the class-based views & default forms in django-authtools where possible)

Most likely, I will stop to make a giant pull request when factories and tests are in good shape, so that the work of making views and forms for everything that needs it can be in its own branch. Depending on how busy/tired I am this weekend, I think I should be able to do the custom functions, if not tie off the refactoring branch entirely.

quivo: Watercolor of a daisy (Default)
[personal profile] quivo

So I took a hiatus from this because I had to move out of state suddenly. I've time to work on this again now, and I'm just going to bite the bullet and stop treating this as a Special Fandom Community Project that needs to be taken mega seriously. Realistically, what I want out of this is a multi-author story archive that works for me (easy to host myself, tags and categories that make more sense than AO3, good ui for posting works), so that's what I'm currently aiming for.

Obviously this is still an open source project, so if you want to make suggestions, poke at the source and contribute, or fork the repo and grimly change all the fonts, knock yourself out.

Current to do list:

  • pick a goddamn license, seriously.
  • accept that I will be coding an admin interface (long story short, I looked into the abyss that is Django admin plugins and customization and decided I wasn't going down that hole). Cry. Cut out Django's okay interface and replace it with my shitty one
  • accessibility tweaks galore. I don't think I'll be doing special ~fancy CSS/JS shit focused on this yet, but at the very least the HTML structure of the barebones site should function sensibly for keyboard users, screen readers etc
  • consider stripping out even more of the barebones CSS library I started with, or exchanging it for something I like better
  • get SSL working with letsencrypt on heroku
  • slap together pythonanywhere install instructions & make sure they work. Because having not one but TWO easy serverless options for anyone who wants to screw around with this is aces.

This is probably too much to do, but who cares! It's going to be fun!!

May update

May. 2nd, 2018 04:24 pm
quivo: Watercolor of a daisy (Default)
[personal profile] quivo

So it's been a while since the last update. Here's what has been done so far:

  • Tentatively decided on Django as the web framework, plus chosen the rest of the development stack:
    • plain HTML/CSS/JS and Django templates for frontend
    • Django 2.0 and Python 3.6 on the backend
    • Server currently depends on where the code is running, i.e. Django's runserver for development, and Gunicorn + nginx for staging on Heroku
    • DB, for development it's just sqlite3, and on Heroku it's PostgreSQL 10
  • Populated the barebones Django install on the fanarchive repo on github with:
    • basic models for fic and fic parts
    • basic views for displaying uploaded fics
    • basic html/css so the archive's pages look only moderately unstyled as opposed to completely unstyled
  • Screwed around with settings so that deploying the repo to Heroku as an app mostly just works
    • heroku-specific settings and Django addons introduced
    • sensitive site settings kicked out to a .env file
    • the fanarchive staging app is here if you want to look at it.
  • Added basic wiki to the repo
    • install instructions added for rolling a copy of the app on heroku
    • install instructions added for local installs
    • added contributor faq for common questions

Quick note on project management

I had this idea that we were going to use some sort of watered down form of scrum/agile, but then I realized it'd be overkill for the tiny team we currently have. So far, I've just been working off of tasks on the Trello board, and will re-evaluate when this becomes unsustainable.

How you can help

Go to the fanarchive trello board and sift through the "Getting Started" and "Ongoing Work" columns. That's where all of our major tasks are currently sitting. You can also reach out to me on discord by PM-ing log_quivo#8714.

RSS

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 13th, 2025 09:54 pm
Powered by Dreamwidth Studios