Darpan (mirror in Hindi) is a proposal to build a Nodejs/MongoDB stack based project to help organizations maintain people directory and facilitate HR.
The objective is to build a web software to help an organization’s HR in managing and organizing people. HR should be able to manage contact information, reporting hierarchy, classify people, birthday and anniversary calendar, attendance/leave management, reports, etc. (Payroll is not the objective of this project yet)
The proposal is to support following use-cases in MVP:
- At the time of installation HR shall be able to configure a domain so that only users with specific email address can register.
- HR shall be able to configure company details like name, logo, admin email addresses, departments.
- Self service: Users with email addresses (matching domain) should be able to register and complete their profiles.
- Users shall be able to search by name and results will be displayed in card design. This way they can discover people and their contact information.
- Users should be able to browse other users by department, should be able to create attendance sheet, etc.
- HR shall be able to export this data in CSV or Excel format so that data can be consumed with other information systems.
- User shall be able to register their plans for upcoming leaves.
What is it not
- Payroll management
- Dynamic schema for user’s information. For any additional user fields, code changes are required.
Plan is to start with [sahat/hackathon-starter] template and build on frameworks like: Express4, MongoDB/Mongoose, Bootstrap, FontAwesome, Moment, etc. Focus will in on incremental build where reach milestone delivers concrete set of features. No plan for data migration scripts until a stable release (~1.0).
- Project structure
- Decide what profile fields to add support for.
- User login / session management.
- User profile's CRUD operations.
- User profile pic upload
- Login domain restriction.
- Admin role assignment.
- Report: List all users (all in one page, no paging)
- User search by name. (MongoDB's latest text index)
- Search results in business cards design (UX)
- Organization departments: CRUD operations for managing departments. User profile edits to have departments.
- Reports: Listing users by department
- Reports: Birthday calendar, anniversary calendar.
- Reports: Attendance sheet.
- Export data visible in any screen into CSV/JSON/Excel. This will be part of every screen design.
- Badges: HR can define badges in system and can award users these badges. They can be anything for achieving within organization. Examples are attending training or certification, person of the month, milestone on years completion, etc.
- Leave and attendance management. Leave approval by manager, etc. Email notifications
- Company level leave allotment and restrictions.
- Reports: People on leave today.