Recruitment Platform workonblockchain.com — A Final Open Source Gift
As the last act of our company, we have decided to open-source our production-grade recruitment application software with an open license that we used to run workonblockchain.com! This MEAN stack application runs a candidate-based recruitment platform. Companies apply to candidates based on their profiles (same model as hired.com). We hope that this can be put to good use by developers and/or business owners!
Acknowledgments
WOB team
Antonio Sabado — Product vision and company director
Jack Tanner — Product owner/manager (hands on) and company director
Mwan Mobile development agency team
Andreas Tsindos — Company director
Asad Mahmood — SCRUM master
Sadia Abbas — Full-stack tech lead
Tayyab Hussain — Full-stack developer
Codebase
Angularjs front-end client:
- Angular application
- Custom component library
- Hotjar and Google Analytics
- Google and Linkedin OAuth 2.0
- Linkedin pdf import and parse
- Server-Side Rendering of Angular application
- Custom administration and CMR panel
Nodejs back-end server:
- RESTful Express API
- Mongoose endpoint validations and Mongoose for database control
- Mongodb database migration examples
- JSON web token authorization
- Database sanitization, CORS, and other security features
- Error handling, authorization, and other middleware
- Mocha unit test suite
- Amplitude API analytics
- Logger to AWS Cloudwatch and file storage using AWS S3
- Email service using Sendgrid API
- Cron service for email reminders and synchronization with Sendgrid and Zoho contacts
Scripts:
- Multi-branch, multi-stage, and parallelized CI/CD using Bitbucket pipelines
- Continuous Integration running mocha unit tests
- Continuous Deployment to AWS Elastic Beanstalk and AWS Lambda
Development Processes
Provided below is also a snapshot of our process when we stopped developing. Note that this is a continual process that was updated at the end of every two weeks sprint during our retrospective meeting. The retrospective meeting is super important to keep this up to date, keep the developers happy, and ensure high-quality assurance. We used:
- Zoho tasks for feature specifications
- Google Docs for feature impact assessments (see below)
- Bitbucket for codebase branch and version management, code reviews, and CI/CD
Task definition
You can find below an example of one of the task descriptions, including user story, acceptance criteria, and definition of done
https://github.com/theblockstalk/workonblockchain.com/blob/master/docs/task-example.md
Feature Impact Assessment
We created a step in our development process in which the developer assigned to the task created a “Feature Impact Assessment”. This assessment would outline the proposed changes to the data structures, and gave high-level pseudocode including endpoint input and output schemers, and assessed any other structural changes in the codebase.
This was checked by another developer before the work started. I also checked this (almost) every time, and while this is not technically a role of the sometimes-not-very-technical ”product owner” it worked for me (I am very technical) and our team well to ensure we were developing code that would not need to be redone. We found this to be an effective way for developers to communicate their understanding of the feature specification and to keep all developers aligned on the codebase changes.
I would highly recommend this practice for development teams!
https://github.com/theblockstalk/workonblockchain.com/blob/master/docs/impact-assessment-example.md
Goodbye!
If anybody is legitimately interested in the workonblockchain.com domain please contact me.
From Antonio and I, we hope to see you all around and have enjoyed this journey together!
Cheers,
Jack Tanner and Antonio Sabado