OfficeLife manages everything employees do in a company. From projects to holidays to 1 on 1s to ... 🚀

Overview

OfficeLife

All-in-one software to manage the employee lifecycle

WebsiteDocsDemo

Build and test Lines of Code Code coverage License

What is OfficeLife

If a company wants to have a complete 360 view of what’s happening inside its walls, it needs to buy and configure a lot of tools. There is a tool for every specific aspect of a company: HR, project management, time tracking, holidays and time offs, team management, One on Ones,... There isn't a software available today, that combine all of them together in a simple way.

Not only buying and configuring all those software is a time-consuming process, but it also costs a lot of money - especially for smaller companies with a limited budget. Moreover, most of the SAAS out there have a let's-call-us-and-talk-for-an-hour-before-you-can-see-what-the-pricing-will-look-like-for-you policy, which most people hate and that we refuse to follow.

OfficeLife is born to offer a solution to these problems.

OfficeLife has the following features:

  • Applicant tracking system (coming soon)
  • Onboarding / offboarding (coming soon)
  • Employee management
  • Team management
  • Company management
  • Time tracking
  • PTOs (ie holidays and time offs) (coming soon)
  • Expenses management
  • Hardware and software licenses
  • Project management
  • Work logs
  • Recent ships
  • Team and company news
  • Get to know your colleagues
  • Wikis
  • Employee and team morale
  • One on Ones
  • Rate your manager
  • Skills
  • Objectives Key Results (OKR) (coming soon)
  • e-Coffees

OfficeLife company

OfficeLife company

To have more information about the project, check the documentation: https://docs.officelife.io/documentation/introduction.html#what-is-officelife

Requirements for hosting the software

  • PHP 8.0 or higher,
  • the PHP's intl extension,
  • a database engine: preferrably mySQL or SQLite. PostegreSQL should work, in theory.
  • a http server: Nginx, Apache, Caddy, etc...
  • We recommend Forge or Ploi to provision the servers needed to run OfficeLife. Heroku should work too.

Requirements for development

  • Composer,
  • Node and Yarn,
  • A knowledge of how Laravel, VueJS and InertiaJS work. OfficeLife is a complex Laravel application, with a lot of queues and cron jobs.

State of the project (as of April 10th, 2021)

We are not yet ready for production. We've been developing this project for more than 2 years now and we are close to launch a beta version. We expect to launch during the summer (sooner if possible, but... life happens).

  • If you find any bugs, please file them by creating a new issue.
  • Please don't submit new big ideas for now. We want to do a million other things with OfficeLife already. However, we seek feedback on the current features and how we could make them more useful.
  • We have a documentation portal, that we slowly build: https://docs.officelife.io. It has a lot of content already, but we plan of adding much more before launching in beta.

Core team

OfficeLife is made by @djaiss and @asbiin.

We've made another project called @monicahq.

License

OfficeLife is open-sourced software licensed under the BSD 3-Clause license. Don't be a jerk.

Comments
  • Population dummyacount fails on missing class Faker\Factory

    Population dummyacount fails on missing class Faker\Factory

    I've installed the system in to an heroku instance. While deploying works perfect, setting up the dummyaccount following the installation guide on docs.officelife.io there is an error when running the command:

    php artisan setup:dummyaccount

    Schermafbeelding 2021-04-07 om 09 24 01

    Is there anything missing? Or did I miss a step in the heroku deploy?

    bug 
    opened by meijbaard 20
  • feat: add external login providers

    feat: add external login providers

    This is a big PR allowing external providers login.

    image

    You fool, don't forget these steps:

    • [x] Unit tests
    • [ ] Tests with Cypress
    • [x] Documentation
    • [ ] Dummy data
    released 
    opened by asbiin 14
  • Ability to have a knowledge base/wiki

    Ability to have a knowledge base/wiki

    We have a number of policies, documents, checklists, etc. that we currently keep track of in a Google spreadsheet titled (and I'm not joking) the "Sheet of Sheets". It's literally a list of links to other spreadsheets and documents and such.

    I would love to not have the Sheet of Sheets anymore.

    To do that, we'd need some centralized place where we can either a) write a document/policy/etc directly, or b) link to an existing Google Doc or other external resource. It would be great if we could put it in some kind of organizational hierarchy in the wiki as well. For example, maybe there would be an "Accounting" section, which would link to budget spreadsheets, accounting processes, expense policies, etc. There might also be an "Engineering" section, which would link to the document describing how we work, code review policies, the SLA that we have in place for our products, etc.

    To take this even further, it would be great if there were both a company-wide wiki and any number of smaller wikis that belonged to individual departments/business units. We have multiple business units that are doing very different things. Some documents (like our two factor authentication policy) apply business-wide, but some documents (like a proposal template that one business unit uses) aren't that useful to people that aren't working in that business unit.

    domain-communicate released 
    opened by cweagans 12
  • refactor: switch to vue3

    refactor: switch to vue3

    • Vue.js devtools: require the latest beta version.
    • The flash global method needs to be called with this.flash. It use tiny-emitter as an event backend.
    • All models and events are well declared
    • Use of proxyValue for all models dynamic updates
    • import 'vue-loaders/dist/vue-loaders.css' in <style> part to make it work

    Besides all vue3 specific syntaxes, I also changed:

    • remove all :classes properties that can be passed thru :class directly, thanks to $attrs propagation.
    • All this.$refs usage, like
      this.$refs[`title${category.id}`][0].$refs[`title${category.id}`].focus();
      

      with

      this.$refs[`title${category.id}`].focus();
      

      it calls the focus() method on TextInput.vue, which already use the right ref.

    You fool, don't forget these steps:

    • [ ] Unit tests
    • [ ] Tests with Cypress
    • [ ] Documentation
    • [ ] Dummy data
    opened by asbiin 9
  • feat: add ability to manage job openings

    feat: add ability to manage job openings

    It's a huge PR.

    This PR adds the ability to create, update and delete job openings.

    To represent this, we have a new object, JobOpening, which is linked to an existing position.

    A job opening has to have at least one sponsor.

    Job openings are publically available from the Internet in a new jobs page. Each company has its job openings listed there.

    Candidates can apply to the job openings from this page.

    We also manage the entire recruitment process.

    Remain to be done:

    • [ ] Candidate page: view the CV
    • [ ] Protect the Apply page with captcha
    • [x] Job opening page: Activate/deactivate the job opening
    • [ ] Job opening page: Edit job opening
    • [ ] Job opening page: Manage case when job fulfilled
    • [x] Job opening page: View rejected candidates
    • [x] Job opening page: View selected candidates
    • [ ] Job opening page: View job description
    • [ ] Job opening listing: view fulfilled job openings
    • [ ] Link help pages
    released 
    opened by djaiss 8
  • feat: add concept of wiki

    feat: add concept of wiki

    Close #917

    This PR adds the notion of wiki. A company can have as many wikis as it wants. A wiki is made of pages. Pages have page revisions, so we know who did what. We also record the page views on each page, so we can provide this information to the user. It's important to do this on the first day so we properly record each interaction.

    released 
    opened by djaiss 8
  • feat: add demo mode to instance

    feat: add demo mode to instance

    This PR adds a demo mode to OfficeLife.

    The demo mode is made for an instance that is supposed to showcase how OfficeLife behaves with real data.

    To enable the demo mode, we need to edit a new .env variable called DEMO_MODE. By default, the demo mode is set to false.

    Once the demo mode is enabled:

    • a new banner will be added to the header of the application, indicating that the instance runs on the demo mode,

    image

    • some features are deactivated: importing users, adding new users, deleting the account and deleting employees. For those features, we display the following message:

    image

    • we also add a new .env variable ENABLE_SIGNUPS that activates or deactivates the Signup form on the instance.
    • when we are in the demo mode, we also indicate the email and the password that we need to use in order to authenticate to the demo instance.

    image

    released on @alpha 
    opened by djaiss 7
  • [Feature Request] Provide alternative backend for file storage

    [Feature Request] Provide alternative backend for file storage

    Currently it seems like we have one option for file storage (Uploadcare). In order to stay in control of our own data it would be nice to be able to use an alternate (like Nextcloud) as a storage backend.

    opened by meichthys 6
  • Unable to add notes to a One on One

    Unable to add notes to a One on One

    I just had my first one on one. I typed in some notes, but when I click the "Add" button, the notes aren't actually added to the one on one. This only happens with longer notes. Please see the video demonstration below.

    https://share.sendspark.com/view/vofnnzvi7ophwd9e

    I know that some fields in OfficeLife are limited to 255 characters intentionally. I hope that the one on one notes section is not limited to 255 characters since I may have lengthy notes that need to be added into this section. I could not find a limitation for this field mentioned in the documentation.

    bug released 
    opened by OrinSafko 6
  • feat: implement laravel jetstream and fortify

    feat: implement laravel jetstream and fortify

    This implements Laravel Jestream and Fortify, which is a convenient way to have login, verify email, forgot password, 2fa, etc.

    It adds a new page at /user/profile for user preferences

    • password change
    • activate 2fa
    • remove other sessions

    You fool, don't forget these steps:

    • [ ] Unit tests
    • [ ] Tests with Cypress
    • [ ] Documentation
    • [ ] Dummy data
    opened by asbiin 6
  • chore(deps): upgrade to Laravel 8

    chore(deps): upgrade to Laravel 8

    You fool, don't forget these steps:

    • [ ] Unit tests
    • [ ] Tests with Cypress
    • [ ] Documentation
    • [ ] Dummy data

    This includes an upgrade to Laravel Passport, which force you to run migration for testing database with:

    DB_CONNECTION=testing php artisan migrate
    

    (the --database parameter won't work anymore)

    opened by asbiin 6
  • chore(deps): bump decode-uri-component from 0.2.0 to 0.2.2

    chore(deps): bump decode-uri-component from 0.2.0 to 0.2.2

    Bumps decode-uri-component from 0.2.0 to 0.2.2.

    Release notes

    Sourced from decode-uri-component's releases.

    v0.2.2

    • Prevent overwriting previously decoded tokens 980e0bf

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.1...v0.2.2

    v0.2.1

    • Switch to GitHub workflows 76abc93
    • Fix issue where decode throws - fixes #6 746ca5d
    • Update license (#1) 486d7e2
    • Tidelift tasks a650457
    • Meta tweaks 66e1c28

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.0...v0.2.1

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies javascript 
    opened by dependabot[bot] 0
  • Question: How  to work on new localisations?

    Question: How to work on new localisations?

    Question: How to work on new localisations? I'd like to work on DE translation and also can work on adding a proper docker-compose.

    I have to admit I fell in love with this project after testing the demo.

    Can't wait to get my hands on the first release.

    I intend to use it for 2 companies but one will be more of a freelance thing managed by only two people and the remainder are freelancers. So I hope to be able to manage these as well.

    Anyway I am getting ahead of myself :)

    I need to say this is really amazing what you're doing here and I am really looking forward to what this will become.

    keep up the great work!

    opened by cocoonkid 2
  • Timesheets disappearing after submitting for approval

    Timesheets disappearing after submitting for approval

    Hi! An employee accidentally hit 'submit timesheet' on Monday of this week. The timesheet is now waiting for approval and no new time entry is allowed. employee view

    As an admin, I should be able to go in and reject this approval so she can continue entering time for the week. But when I look at her timesheets, it shows that no timesheets have been submitted. admin

    So now we're at a standstill. She can't enter any more time this week, but there's no record of her ever submitting anything. Long-term, it would be great if employees could undo their submit-for-approval, but in the interim, any way to fix this week so she can enter time?

    opened by sebartlett 0
  • Timezone field does nothing

    Timezone field does nothing

    In "edit personal information", entering "GMT" or "Karachi" in the timezone field yields NIL.

    image

    There seem to be missing CSS in several other places: date selector, inputs, etc.

    opened by savchenko 2
Releases(v0.5.0)
Owner
OfficeLife
We cover the entire employee lifecycle in a single application.
OfficeLife
Scaffolding to add some Mojo to your Drupal projects.

mojo-drupal-scaffold Scaffolding to add some Mojo to your Drupal projects. This package adds scaffolding files for your Drupal project by integrating

Bluehorn Digital 5 Mar 15, 2022
Initial template to start your awesome Laravel, Tailwind and Vue projects

Features Laravel 8.* Tailwind 2.1 Ready and Loaded @tailwindcss/typography @tailwindcss/forms Dark mode ready All variants enabled by default Vue 2, V

Marc Garcia Torrent 19 Jul 19, 2022
Project skeleton generator for Laravel & Lumen projects

Skeletor Skeletor is a PHP based CLI tool that has been built to take away the pain of setting up a base project skeleton for Laravel & Lumen projects

Wouter 39 Oct 4, 2022
A skeleton WordPress project to be used as a base for new WordPress projects.

BoxUK WordPress Project Skeleton A base WordPress project from Box UK to get you up and running quickly. Installation Create a new project with compos

Box UK 33 Dec 14, 2022
🚀 A quickstart generator for Laravel projects

?? Initializer for Laravel Initializer for Laravel takes a visual, approach to setting up a new Laravel project. Fill out the form, choose the compone

Niclas van Eyk 59 Oct 12, 2022
A Web Artisan list of categorized OPEN SOURCE PROJECTS built with Laravel PHP Framework.

Laravel-Open-Source-Projects A Web Artisan list of categorized OPEN SOURCE PROJECTS built with Laravel PHP Framework. This repository includes a compr

Goodness Toluwanimi Kayode 833 Dec 26, 2022
A web based UI for browsing the projects being served by Laravel Valet.

?? Valet Launchpad A web based UI for browsing the projects being served by Laravel Valet. Built on Laravel (with TailwindCSS & Alpine.JS), this small

George Buckingham 20 Dec 14, 2022
This repository is pre-configured, clean and empty skeleton for creating a new projects using Kraken Framework.

Kraken Application Skeleton Note: This repository contains pre-configured application skeleton for fast creation of new projects with Kraken Framework

Kraken 79 Aug 6, 2022
Easily start new projects using FukigenMedia's starterpack.

Fukigen Filament Starterpack Easily start new projects using FukigenMedia's starterpack. Usually, many of us are confused about where to start a new p

Fukigen Media 8 Oct 9, 2022
An Starter Kit For Laravel Projects.

Laravel Starter Kit An Starter Kit For Laravel Projects. Installation 1-Install the package via composer: composer require xmen/starter-kit --with-al

4xmen 16 Jun 15, 2023
YCOM Impersonate. Login as selected YCOM user 🧙‍♂️in frontend.

YCOM Impersonate Login as selected YCOM user in frontend. Features: Backend users with admin rights or YCOM[] rights, can be automatically logged in v

Friends Of REDAXO 17 Sep 12, 2022
The easy PHP Library for calculating holidays

Introduction Yasumi (Japanese for 'Holiday'「休み」) is the easy PHP library that helps you retrieve the dates and names of holidays and other special cel

AzuyaLabs 926 Dec 29, 2022
Decorations for the site for the Christmas holidays.

Christmas Christmas decorations for Winter CMS sites. Installing Composer composer require webvpf/wn-christmas-plugin Features there is no interactio

null 2 May 24, 2022
What do developers do on holidays? Right! Yet another sudoku.

yasu This is a project that happened to obsess the contributors on a greek island in the summer of 2022: figure out how to generate and solve sudoku b

null 2 Sep 18, 2022
Technical test from a company - Laravel 8 | REST Api | Livewire | Boostrap

Contacts CRUD (Laravel 8) (Demo) Introduction A simple CRUD for manage contacts using Laravel 8. All transaccions work through an REST API. Tech stack

Sebastian Sperandio 3 Nov 17, 2022
This mini project aims to design a set of APIs that manage transactions of a company

Introduction. This mini project aims to design a set of APIs that manage transactions of a company.Managing transactions include: creating transaction

Omar Hossam Eldin Kandil 2 May 22, 2022
My personal tool that I adapted for the company and my colleagues.

xarites-workflow My personal tool that I adapted for the company and my colleagues. XARITES THE CREATIVE AGENCY SRL Automation workflow Created by Vec

Vecsei Szilveszter 2 Nov 17, 2022
Clean up and prevent empty meta from being saved for Job, Company, or Resume listings in database

=== Empty Meta Cleanup for WP Job Manager === Contributors: tripflex Tags: wp job manager, meta, cleanup, wpjobmanager Requires at least: 5.2 Tested u

Myles McNamara 3 Feb 7, 2022
A reliable, scalable web application for the management of a fictional vehicle rentals company

auto-vendor A reliable, scalable web application for the management of a fictional vehicle rental company. Uses technologies such as: HTML, CSS, PHP,

Tyler Cartwright 0 Aug 8, 2022