Tasks / ideas / questions / plans / discussions
See original GitHub issueHere are some tasks that I came up in no particular order
-
Our tags implementation is really bad, it’s one(event)-many(tags), meaning one event can have many tags, but they can’t be reused across events -> therefore they’re not really useful for searching.
Task: reimplement them to be many-to-many meaning that events can share tags (i.e. python and JS meetups can both have development but each of them has their language as a tag) -
Implement sponsors (2 tasks actually, admin dashboard and public part). Sponsors should be shared so maybe a separate dashboard for them and not to keep them inside of events?
-
Implement user management on admin side (approving users into chapters, inviting admins, managing, banning, sending mass emails)
-
Setup prod deployments for a few providers
- Heroku / Railway / Render / Fly.io
- DigitalOcean / Vultr / Linode
- Publish docker images
-
Regarding deployments, could we maybe try and setup a “free” option? Railway is currently free for smaller stuff but I have a feeling that’s gonna change in the future when VC funds run out. Hosting it on a “free” Deroku Dyno that sleeps every 30min is kinda 💩 (meaning Heroku is gonna be >= 7usd, if we add a bigger DB that’s up to 15usd, domain / mailing / images, it adds up), Render is even more expensive but maybe trying to setup a Serverless build of this (I kinda hate the idea, but it could be free / easier if we host it on something like vercel and the db on Mongo Atlas because there is no way that a SQL db can scale with a serverless backend on a free tier). Cheapest usable (IMO) instance is AMD 1 vCPU for 6usd, which would be kinda doable, but needs to be tested.
-
When deploying to prod, there should be a before server starts validation hook to check for config stuff, access to DB and mailing and display a “helpful” error message in a form of HTML i.e. you don’t have a JWT_SECRET setup, when you go to http://myInstance.com, it should spit out something along the lines of
You don't have a JWT_SECRET key setup, go to YOUR_PROVIDER and paste this code [32char random string] into ENV
-
Think of how to further improve the deployment process, should it be setup accounts -> add into heroku -> boot up app OR one-click -> boot up barebones app with instructions/links on how to set stuff up; How hard would the second thing be / how to implement it?
-
Convert MUI to Chakra, there are still some MUI components left, replace them with chakra
-
Switch from localStorage for user token to cookies (use this) so that we can prefetch queries on the server side with next (we need this because we have no way of knowing who the user is if the cookie stays in localstorage, it was just simpler and faster to implement when setting up auth)
-
Think about image uploads
- Do we need them?
- How are we gonna handle them? (heroku dynos restart and can’t hold local data, neither can Railway/Render), so probably Cloudinary / S3, if we go with DigitalOcean / Vultr / Linode you can use their S3, but AWS is free up to 5gb which should be enough, but not as easy to setup? discuss…
-
Hosts should be able to send emails to participants, create that functionality
-
Calendar stuff (it was mentioned #436), you’d probably need to investigate how to setup dynamic iCal links in node and host that
-
Subtask in the calendar thingy, for the MVP downloading the .ical file / linking to calendar.google.com and adding all the params in the URL query could work just fine and I personally thing that we should go with that for the MVP although I’d really like to dive into iCal and implement that dynamically
-
Event commenting / raiting system
- Thing of the initial concept (stars / yes|no / just text / emojis for 1-5 (vercel/discord comes to mind)?
- Actual implementation
- Anonymous feedback in a form of questions that participants can answer after the fact combined with a review?
-
Implement mailing notifications
- User notification preferences
- Send them on i.e. event created / updated
-
RSS, this thing needs / EASILY Exportable mailing list
Some questions that aren’t really MVP related but project in general
- Federation? The idea was to have on server as a “discovery resolver” where others can register their URLs and then they can talk to each other? Or maybe something else?
- Should the API be public by default (more like should be expose it with docs or not)?
This is just the start, there is so much more stuff that we need to build and there is a lot of stuff here that’s not yet well explained and needs to be, but it’s 1AM and I’ll do it tomorrow 🙂
Also, I’ll spend some time this weekend/next week going through all the issues and closing everything that’s either done (there are a couple of those) and that’s not gonna be built for the MVP, there have been quite a lot of changes and some of the old issues just aren’t really suited for our current vision.
Issue Analytics
- State:
- Created 2 years ago
- Reactions:4
- Comments:6 (6 by maintainers)
Top GitHub Comments
So there are a few things still needing addressing. For example:
@raisedadead it would be good if we could have a chat about both of those before too long.
Aside from those, we’re hoping to get the Google Calendar integration working for the MVP, rather than relying on the icals.
Finally, we don’t have all of the user management implemented. It’s not yet possible to modify instance roles from within the app, so that needs implementing for both the client and the api (nothing exists yet).
As far as I can tell, all the other points are good, just not 100% necessary for the MVP.
Hey, I haven’t been getting my hands dirty enough recently, but I’m going to dig into the tags issue. Hopefully should have a PR soon!