Inspiration

StriverRoll started as a desire to simplify payroll processes for smaller teams. After repeatedly running into spreadsheet headaches and manual calculations, we saw an opportunity to build something that could lighten the administrative load. We wanted to create a platform that teams of any size could rely on for timesheets, location management, tax compliance, and overall payroll administration.

What it does

StriverRoll is an all-in-one payroll management system:

  • Employee onboarding and location assignment
  • Timesheet tracking, including daily/hourly rates and extra shifts
  • Automatic pay run generation with NIC/Tax calculations
  • CSV-based batch operations for timesheets or employee creation
  • Real-time audit logs, reminders, and notifications
  • Comprehensive wage-cost allocation reports for clarity and compliance

How we built it

We used a MERN (MongoDB, Express, React, Node.js) stack:

  • Backend (Node/Express):
    • APIs for user signup/login with JWT-based authentication
    • Routes for employees, timesheets, pay runs, reminders, NIC/Tax, etc.
    • CORS handling and environment-based configuration
    • MongoDB for storing all structured data
  • Frontend (React):
    • Responsive design with Material-UI
    • React Router for nested navigation
    • Axios for API calls to the backend
    • CSV parsing, editable form inputs, and step-by-step batch creation flows

Challenges we ran into

  1. Ensuring data consistency: Handling multiple states (daily/hourly rates, location-based wages, etc.) required carefully structured models and robust validations.
  2. CORS & environment config: Aligning local dev environment vs. production required environment variables and precise CORS rules to avoid cross-origin errors.
  3. Batch creation: Managing large CSV uploads with chunk-based processing while maintaining good UX.
  4. Audit & notifications: Implementing an audit log that captures changes while also generating user notifications in real time.

Accomplishments that we're proud of

  • Batch operations: We successfully added bulk CSV features for employees and timesheets, simplifying data imports in large volumes.
  • Modular architecture: Our code is compartmentalized into meaningful modules (PayRuns, NIC/Tax, Reminders, etc.), which helps maintain clarity.
  • End-to-end security: Integrated JWT-based auth, user role checks, and environment-based secrets to protect sensitive payroll data.
  • Robust UI: The React interface with Material-UI feels user-friendly, featuring helpful tooltips and dynamic forms.

What we learned

  • The importance of writing clear, consistent APIs so the front end can easily handle complex logic—particularly around pay structure variants.
  • Async bulk processing approaches to handle large CSV uploads and maintain progress feedback for the user.
  • Best practices for environment config, especially ensuring local, dev, and production setups remain consistent and secure.

What's next for StriverRoll

  • Automated payslip generation: PDF payslips ready to email or download after each pay run.
  • Integrations with external HR or accounting systems for seamless data flow.
  • Advanced scheduling: Shift-based scheduling and a drag-and-drop calendar for time off and coverage.

Feel free to explore StriverRoll at https://expayroll-frontend.vercel.app. Demo Credentials:

Email: testpayrolladmin@gmail.com

Password: 123456

Built With

Share this project:

Updates