Giter Site home page Giter Site logo

firestormforum / firestorm Goto Github PK

View Code? Open in Web Editor NEW
966.0 71.0 93.0 26.29 MB

An open-source forum engine, with an Elixir+Phoenix backend and an Elm frontend.

Home Page: http://www.firestormforum.org

License: MIT License

Elixir 100.00%
forum phoenix elixir kickstarter dailydrip elixirsips

firestorm's People

Contributors

adamdill avatar baroquon avatar daveman avatar dependabot-preview[bot] avatar dependabot-support avatar dependabot[bot] avatar dylanguedes avatar franzejr avatar jordanhubbard avatar knewter avatar manukall avatar nagasaki45 avatar slashmili avatar thmzlt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

firestorm's Issues

Pagination

This is going to make permalinks interesting, good tests cases are important here.

Strip out quoted part of email

Right now the reply-by-email looks like this:

image

It would be great to strip out the pre-existing content and only post the body of the new email.

Search

All we really need for beta is a basic tsvector search - could even use ILIKE in theory but ecto supports tsvector so why not use that?

Login on firestorm-dogfood.herokuapp.com broken

Trying to login via github gives me this error:

#Ecto.Changeset<action: nil, changes: %{username: "COLABORATI"}, errors: [email: {"can't be blank", [validation: :required]}], data: #FirestormData.Commands.LoginOrRegisterFromGitHub<>, valid?: false>

Also the app takes very long to load.

progressively fuzzier timestamps

Right now they're just rounded to something relatively meaningful but, for instance, there's a thread from 13 days ago. That's too much effort, it's just two weeks, who cares that it's not 15 days?

when it happened what I want to read
just now a few seconds ago
45 seconds ago 45 seconds ago
4 minutes ago 4 minutes ago
1h50 min ago 2 hours ago
6 days ago 1 week ago
13 days ago 2 weeks ago
1 month and 26 days ago 2 months ago

Add github<->slack integration for #firestorm

I made a request to @stevedomin to get our GitHub activity going into the channel. No clue if it's the sort of thing the elixir community wants to encourage on the slack since i believe it increases message volume, but since @Trevoke mentioned it I figured I'd make an effort )

Do *something* with "how long ago the last response was"

Right now I know a thread was created a week ago but I don't know that someone replied yesterday.

Can we maybe sort them in descending order of most recently updated?

Should we show somewhere how long ago the last post in a thread was?

...Something else?

Cannot fill tag entry

When i click on tag input it hides so i can't fill any text. Also it is possible to send empty tag. Can I take care of this ?

Do not require that a person's email address be available through OAuth

For various reasons which include "not giving recruiters an easy way in" and "old-school paranoia", I don't want my email address to be public on Github. Right now it's required, or we can't log in to the app.

Since the email is required for email notifications to work, there's probably some usability work involved here.

Cannot log in with GitHub with blank email. Unfriendly flash notice

Hi I just found this project, decided to play around with it on the heroku dogfood deployment. I clicked Login with github, clicked authorized when the GitHub auth page came and it threw me this error

image

Just realized my email wasn't displayed on GitHub, so I made it public. Log in worked.

That seemed to confuse me for a moment. Should we provide a more user friendly error (users shouldn't really be concerned about why a changeset fails in that much detail) ? I can tidy up this message if this is a good idea.

Support canonicalizing URLs for SEO friendliness

From a slack discussion:

dpehrson [9:54 AM]
@josh If you go that direction, make sure you include <link rel="canonical"/> tags on all those pages, and better yet force 301 redirects on each of those :show actions to ensure people get redirected to the canonical URL.

We need something that knows the canonical URL for a given controller action and redirects to it - that way if you access a category by ID, and there's a usable slug, we can redirect to the sluggy version. If we do that we don't need link rel="canonical"

Add support for attachments

  • Direct-to-S3 Uploads
  • So client in the browser requests S3 Permission, gets it, direct uploads to a temporary bucket that cleans itself out regularly, then sends that URL to the controller, which then fetches it and uses arc to store.

Tablet / Desktop designs

Implement better / more complete CSS based on the designs

  • Flesh out the %NavItem{} struct and whatever its parent tree structure looks like some more, and corresponding view functions.

Chores

  • Tooltips on post actions

Internal notifications

Users should be able to see new notifications in the interface, not just receive in email.

Revamping the main interface

I’m looking at the current interface and I’m thinking that I wish I didn’t have all the threads displayed at once. So it’s making me think about what I want to see.

I kinda want to see the categories, and I kinda want to see the n most recently updated threads.

And then I'm wondering about metadata or other things that might be nice to know about, like how much signal there is; should we sort categories by how active they are, for instance?

And then I wonder, do we want the "home" page to be a personal dashboard instead of the standard "here's all the categories / forums / threads" ?

Clicking on "Sign In" does not reflect signed in state

  1. First on the homepage:
    click me
  2. Then on the logged in page, the bottom-left button still says "Log In":
    wut

Clicking on "Log In" again will finally result in the correct state being displayed (namely, the link text changes to "Log Out").

I'm relatively new to Elixir and Elm, but I'm happy to help out and attempt to fix this "bug" if someone with more experience on the project can point me in the right direction in terms of where the logic for this stuff lives 😄!

Unable to login to demo using github integration when email is private

EDIT: Sorry, should have searched first, this is already mentioned elsewhere (issue #40).

I'm unable to login to the demo application on heroku using my github credentials. After authorization I get sent back to the login page with the following error:

#Ecto.Changeset<action: nil, changes: %{name: "Kyle Baker", username: "kylethebaker"}, errors: [email: {"can't be blank", [validation: :required]}], data: #FirestormData.Commands.LoginOrRegisterFromGitHub<>, valid?: false>

I'm assuming that this is because my email address on github is set to private. It looks like the oauth scope is only Access public information (read-only) and doesn't include Access user email addresses (read-only).

I think if email addresses are required then then the oauth scope should include them. If keeping the scope as limited as possible is intentional then I think there should be some better messaging to the user.

This likely only applies to the demo and not the project itself, but a suggestion for the project would be to catch and handle any issues surrounding the authorization and communicate something to the person trying to log in.

Decouple front-end code so we can use vuejs

I do not believe that elm is a good choice, details should not be discussed here, however I would like to see an app design where it is easy to replace the frontend by e.g. vuejs.

Please keep this app frontend-agnostic so frontend devs can make their own decisions on frontend tools, thank you very much!

Question: content of emails

Should the notification emails look more like a mailing list email, that is, have progressively more deeply quoted posts to indicate the progression of the conversation?

E.g.

My response

> What I reply to

>> What they replied to

If so, it would make it easier to quote a particular bit of the original post when replying.

Slackbot - call for discussion, then development

We need to build a slackbot once the core forum is chugging along nicely, because we hit that stretch goal! If you have thoughts about the overall design, go ahead and spam them in this issue. We'll collect them up and have a design discussion around them once 1.0 launches, before beginning development (which will also be done on this issue).

Don't get an email when you reply by email

I tested with this thread: https://firestorm-dogfood.herokuapp.com/categories/your-elixir-projects/threads/11

Josh posted https://firestorm-dogfood.herokuapp.com/categories/your-elixir-projects/threads/11#post-67 and I got an email, so I replied via email, which you can see, and then I got what I thought was a notification from that response... So I replied to that via email, and you can see how that's working out for us in the thread.

We should not be receiving the standard notification email for a reply we sent via email.

Support local storage for uploads

I'm considering packaging Firestorm for the Cloudron platform for one-click installation and integration. Cloudron provides apps with a local storage directory in which to keep files. For those of us who don't use AWS or prefer to avoid it, it'd be nice if files could be stored locally.

I assume this would be a fairly easy change to make, perhaps with activation keyed off of the presence of an UPLOADS_DIRECTORY environment variable. I've only spent about 10-20 minutes with the source, so if there is no conceptual reason this should be difficult then I may be willing to take it on.

Notifications (separate OTP app)

  • First step: email for every single post in a thread you’re watching
    • Just a quick link to it, nothing fancy
  • Design
    • I think firestorm_data has a GenStage producer for ‘events’ of some sort and we just produce ‘new post’ for now
    • The command to create a post puts something on the producer
    • New app: firestorm_notifier starts up, consumes this GenStage producer, and sends emails out.
    • Design of the emails
    • Configurable behaviour
      • List of configurations that determine what triggers a notification

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.