Project introduction
Repository
https://github.com/boxwise/dropapp
What is Boxwise?
As stated in project's README file, Boxwise is a web-app, which makes it easy for organisations to source, store and distribute donated goods to people in need in a fair and dignified way.
How it works?
I'd just repeat myself here as I've already did my best to sum it up in couple of sentences in my first contribution post. You can find it HERE
Why did I join the project?
I've explained this also in my previous post. Again, just click HERE to find out.


Yeah!! The title's right :) That's part of the positive side. Another part is, that we have 2 new members! 2 girls who are currently volunteering in Lesvos, Greece and have years and years of experience of being part of tech companies. They're not developers but it actually might be exactly what we needed - decision makers!
Ever since they've joined, our Slack and Trello have been on fire. Task are rolling in my direction and therefore I'd like to keep this report quick.

One more and SUUPER IMPORTANT thing - we've switched to the old Dropapp as our main MVP for now. We're fixing several known bugs while girls are in Greece looking for new NGOs who might use us. If they validate there's a bigger demand for the better version, we'll continue with React product which is for now on hold.

Tech talk
Hans came for #codingweekend to Innsbruck!!
As already mentioned above, we're back on the old dropapp - at least till girls in Greece validate demnad for the new version. Dropapp is using a custom PHP framework which Hans understands well. I've never worked with PHP :D Soo he came over to Innsbruck and we had a nice 3 days long of coding + some DB design talks..
My Pull Requests
1) Replace "Drop in The Ocean" mentions
Well, the dropapp has initially been developed for NGO called Drop In The Ocean. We've all volunteered for then and that's how we met as well. Till the last week, it's been the only organisation using the app. Not no more :) This was gr8 task to get to know myself bit more in the codebase as it touched several files.- Pull Request
- Time worked: 5 hours
- Additions/Deletions: 24/26.
- Biggest issue: My first ever code in PHP ever since my 3rd semester in the UNI 7 years ago :D Learning curve took some time :)
2) Make currency name configurable per base(camp) level
Well, since the app is meant to be multitenant, the word "drops" can't be used anymore. We've decided to make the name configurable not only per organisation but actually per camp.- Pull Request
- Time worked: 8 hour
- Additions/Deletions: 3312/3019.
- Biggest issue: Maybe figuring out how to correctly generate Phinx DB migrations (had no idea how that stuff works before :D)

3) Replace icons with Boxwise icons
Old FontAwesome favicons replaced with our favicons. I've also added new logo for coins using our Boxwise design.- Pull Request
- Time worked: 2 hour
- Additions/Deletions: 0/0 - I've just replaced images with newly created ones.
- Biggest issue: GIMPing new coin logo I'd say :D

4) Automatically send email to newly created users
There's an option to send this email by checking the user in the user list and then clicking the button to do so. I just moved that function to common lib functions and had a bit of a hardtime with realizing the password is hashed with md5.- Pull Request
- Time worked: 2 hour
- Additions/Deletions: 44/41
- Biggest issue: Wondering where the password is being hashed and started to implement it myself.....then I've noticed the md5 function :D

5) "Always show product in Stockroom" checkbox
Yeah, I'm still not really sure what the Stockroom is for, but Hans told me they need this checkbox to show in product menu :D- Pull Request
- Time worked: 0.5 hour
- Additions/Deletions: 4/3
- Biggest issue: Understanding what the Stockroom is for in the real world camp (we didn't have it in the camp I worked for)

6) Make email unique column and add foreign key constraint
This is all already checked in the code soo changing the schema is just an aditional level of security.- Pull Request
- Time worked: 1.5 hour
- Additions/Deletions: 675/40
- Biggest issue: Nothing big really...maybe merging the DB migrations cuz Hans was creating some at the same time..it was just tedious to always recreate the db, migrate the schema and then seed it with test data...I feel we need a script for it :D
7) Add deleted column to organizations
This wasn't that much of a programming rather than discussing how we want to do delete in general. The framework already recognizes if table has a column "deleted" and if so, it's set to a date when deletion occured. If the column is not present, it get's deleted for real. We just talked a lot various aspects of having old users and organisatoins archived and the effect it could have on refugees. Also cascade delete options were tricky to think about in some cases- Pull Request
- Time worked: 3 hour
- Additions/Deletions: 3419/2910 - mostly migrations
- Biggest issue:What if volunteer comes back to the same organisation but different camp vs comes to different organisation. We needed to test such scenario to see how the code & DB behaves.
8) Add deleted column to usergroups
This is basically the same as the PR above, just with different table - usergroups.- Pull Request
- Time worked: 1.5 hour
- Additions/Deletions: 3218 / 2974 - mostly migrations
- Biggest issue:Changing some queries where .DELETED column wasn't taked into consideration
Next steps for Boxwise team
We're definitely rolling! Roanna and Stef are still in Greece and trying to get even more new organisations on board. We already have 2 new ones what's more than we've expected so we're definitely high in the clouds :) Other than that, we'll just keep implementeing stuff girls "order" and let's see in couple of monhts where this all goes and if it makes sense to revive the React version (dropapp 2.0). Sooo pumped!!!