Making DTel a solid project
Closed this issue · 12 comments
In our current situation not just the code is a mess, but also the repository itself. That's why I will be doing a lot of changes to it:
- Proper branching
This includes things such as:- having a
master
&development
branch, - requiring PRs (feature branches) with code review and
- having a
- CI
Currently, we don't have much in the way of testing or CI checks. We should set these up to make sure our code is working and of good quality.- Clean up current CI
- Select and set up specific providers (eg LGTM, Codacy, GH Actions)
- Create automated tests
- Remove the docs branch
Currently, we have a separate docs branch, but this should really just go into a docs folder.
With that, I will obviously also change the folder structure. (good for a switch to TS also)
(UPDATE: The docs have moved to another repo.) - Creating milestones
There are a lot of things to achieve, and the idea is to do this with rolling releases. Things such as:- A solid class structure
- Switching to TS
- Adding tests
- Switching to a real dbms (eg. Mongo or PostgreSQL)
There is probably more to be done, but that's what I can quickly think of.
Some things that will need updating after this:
- LGTM (unless it auto-updates?)
- GitLocalise (when we set up translations... again)
- RTD (pretty sure it can build from a folder isntead of a branch)
@Rexogamer, I just changed LGTM in order to not fail #279. I'll also change GitLocalise as that falls under my account.
@austinhuang0131 can you take a look at changing RTD?
the markdown files can be in a folder but the mkdocs configurations must be at the root dir of a branch
CI can be it's own milestone, we've got a proper branching system now.
- [ ] Return fouroneone.json
Thank you for the gold kind stranger
As for a database, I'd like to start some open discussion on that.
Preferably, I'd like to push for Mongo, mainly because it's an easy pathway out of Rethink, not to mention that it's JSON based and so you don't need to do any finickey stuff.
Also, no way am I dealing with that stupid Postgres access file on the VPS
Alternatively, we could look into some of the new entries to the noSQL market such as EdgeDB
Personally, I'm leaning towards Mongo:
- it's pretty easy to install and use
- it's pretty similar to rethink
- we've used it before, so previous experience
- noSQL :)
Mongoose or raw mongodb?
Using Mongo is fine, but it'll never be as good as the old established dbms like PostgreSQL, MySQL, etc.
And it's not like SQL is difficult, but it does push you to think better about how you manage data.
Installation is a non-issue, I have a working PostgreSQL instance running that I can add another DB to in a matter of seconds. But anyone could set one up in a few minutes.
Also, I'm strongly against anything but Mongo if we're sticking to noSQL.
Well that settles us on Mongo then, mainly because I'm massively against going SQL for I-don't-want-to-be-responsible-when-not-if-it-goes-wrong reasons.
It's a lot easier to go wrong with Mongo than a good database, but sure.