Giter Club home page Giter Club logo

officelife's People

Contributors

asbiin avatar dependabot-preview[bot] avatar dependabot[bot] avatar djaiss avatar github-actions[bot] avatar haidang666 avatar meichthys avatar sahilofficial671 avatar stickler-ci[bot] avatar weblate avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

officelife's Issues

Ability to manage physical location of employee

Hopefully one day Covid will be over and people will come back to offices.

In this case, we should be able to indicate on an employee's profile page, where we can find the employee in the company (for instance, Office 17b, 3rd floor).

Login with SSO

We should be able to login using brand login

  • LDAP
  • SAML
  • Active Directory

Removal of dependabot

Dependabot creates a lot of noise in the commit logs.

Could we, instead, schedule a github action that would do a composer update and yarn every week, and commit this with a simple commit message, instead of 12 commits? @asbiin what do you think?

Ability to create account in different regions of the world

Companies all around the world have different regulations regarding data, based on where they are located.

Rules in Canada are different than those in France, China or US.

We need to have some kind of processes to allow customers to create instances in

  • US
  • Canada
  • France.

We'll add new markets as we go.

To make it happen, I propose the following:

  • when we click on the Signup button on the marketing site, we should show a page asking for which country we'd like to be located in,
  • then, when we click on a country, we are redirected on the actual app hosted in the right country, like ca.officelife.io.

Manage licenses of softwares

We already support the management of hardware. We should also allow the management of licenses.

The scope of the v1 for this:

  • ability to add a software with a number of seats,
  • info of the project
    • indicate the renewal date of the contract
    • indicate the price of a seat
  • ability to assign a license to someone.
  • ability to see who has which license.

Ability to search a position

Employees can be assigned a position (Front end dev).

We should be able to search a position in the Universel search bar in the header. When cliking on a position, we will display the list of employees matching this position.

Linked to #672

Ability to add a video on employee profile

Today we support avatars on the employee profile page.

It would be great and fun to use a video instead, so employees can click on it and see the video of the employee.

Uploadcare (what we use to manage uploads) can re-encode the video for us if needed.

Ability to manage contests

A contest lets a company (or a team) offer a prize to their employees.

Employees can indicate whether they want to be part of the contest.

A contest has an expiration date - after this date, employees can't enroll in the contest.

After the contest ends, a winner is randomly chosen.

Show list of employees per position

We should be able to browse a list of employees per position.

The idea: everyone should be able to see all the positions that exist in the company. Then, for each position, we should be able to see the list of employees with this position.

Ability to book a time off

We should allow employees to book time off. This is what we call PTO - or Paid Time Off in the official HR world.

Each company has

  • a base number of allowed holidays per employee
  • a base number of allowed sick days per year (it can be unlimited)
  • a base number of extra off days per year

Each company also has a company calendar which indicates the days considered off for everyone.

Ability to add comments to a project message

There are many places in the app where people can post stuff. Employees should be able to add comments to them.

The first feature that should have comments, are project messages.

Indicate who is first responder

First responders are employees who have the ability to provide basic medical help when something bad happens, while we wait for true medical professionals to arrive.

We should add the ability to indicate who is first responder on an employee profile, and find this information quickly when we are inside the application.

Manage timezones for dates

As of now, we don’t manage timezones in the application.

All dates are stored in UTC and displayed as such for all users.

We should change that:

  • dates should ALWAYS be stored as UTC, as it’s the case
  • users should have a default timezone (set in the instance), but should be able to change it for themselves
  • we should have some kind of helpers that convert dates to the right timezone
  • this conversion should be done in the ViewHelpers, not in the Vue file. The Vue file shouldn't have to do any conversion of some sort, ever.

Add the notion of offices

A company might have several offices all around the world. For instance, in Paris, Montreal, New-York.

Each office has a set of teams, and therefore employees.

This is the hierarchy of the different levels in OfficeLife:

  • company
  • office
  • teams
  • employees

What to do

We should start by the very minimum set of information:

  • name of office
  • address

An office can have one or more teams.

That's it. We'll add the rest later.

Signup with code (à la Notion)

Notion lets us sign in with a code.

Basically, there are no passwords, and once you enter your email address, if it exists, you receive a link by email that redirects the user to their logged account.

Ability to create polls

Polls allow anyone in the company to take the pulse of the company or a specific team.

A poll is

  • a title,
  • a list of potential answers
  • a deadline.

Then, we should have polls report, available for everyone to see. Answers should be anonymous.

Error while compiling

Hi @djaiss great project, thanks for your awesome work. trying to give it a try but i got some issues, any idea or i can fix that errors?

ERROR in ./resources/js/app.js
Module not found: Error: Can't resolve '../../public/js/langs/en.json' in '/Users/dukens/Code/officelife/resources/js'

GET https://officelife.test/nprogress/nprogress.css net::ERR_ABORTED 404 (Not Found)

Thanks 🙏

See all employees on a map

We should be able to see all employees in a map.

Technically, we should absolutely use the getPartialAddress() of the Place object to make sure no one can see the exact location of employees for privacy issues.

2FA

We need to support 2FA.
2FA should be enabled at the user level.

  • In an ideal world, there would be a settings in the Adminland (ie reserved for administrators) that would let them require the 2FA for every users in the account.
  • Also, we should list on the user list (in Adminland), who has 2FA activated, and who has not, as shown below.

Enhancement

  • Blank state for address block on employee profile

Add notion of departments

A department is composed of teams.

The complete hierarchy would be

Company > Office > Department > Team > Employee.

360 review of someone (manager or employee)

An employee should be able to select up to 5 team members to ask them for feedback about him/her.

  • This process can be triggered anytime.
  • For the first iteration, we should only have one question: do you like working with me and what is your opinion about me
  • The answers should be anonymous
  • Once every member has replied, the poll closes but it will never auto-close itself.
  • We should have a section on the employee performance tab, in his profile page, where we list all the previous polls.

Onboarding questionaire

Every new employee (added or imported) need to answer

  • a set of questions when they arrive,
  • upload some documents to comply with the company (NDA, etc...)

HR should be able to add a standard questionnaire that every employee should fill.

This should appear on their dashboard, and employees should be able to see a completion rate.

Setup demo account

On our marketing site, we will have a link to a demo account, something like demo.officelife.io.

The demo account has always the latest release of the app.

This account should be automatically populated with fake data provided by the SetupDummyAccount command, so potential customers and users see the potential of the application.

  • Demo data should be reset every 5 minutes (so data always look accurate, and people won’t put too much crap in it)
  • Demo should be accessible with the [email protected] account

Because the SetupDummyAccount takes a lot of time to run, we should have a SQL dump of the data this script generates, and use this dump to populate the database.

Because this account will be a "special" account, we should have some limitations in it:

  • we shoudn't authorize uploading files
  • we should not send email at all
  • no payment info should be indicated in the app at all.
  • we should have a special banner at the top of the account saying "it’s a demo account".

To do this, we should have a new variable in .env that lets us control this.

Indicate the competencies of an employee

Pouvoir connaitre les competences des gens: qu’un employé declare savoir être expert dans “les machines Siemens” ou “le pricing d’une cuisine” (savoir qui connait quoi)

Improve CI build times

The SetupDummyAccount command takes a lot of time. I strongly believe that we should keep testing it to make sure it works, as it will be used by all the developers that want dummy data in their accounts to test and try the product.

Also, we need it ourselves to populate our default test account that we will provide at launch.

However, it’s not efficient to run it alongisde all the other tests.

I propose the following strategy:

  • in phpunit.xml, remove the ./tests/Integration from running.
  • create another phpunit.xml that will run only the ./tests/Integration files and use it in a separate build.yml file

That will allow us to run it in parallel of all the other tests, so that would help.

What do you think @asbiin ?

Add activities to team page

Teams always have some kind of recurring events (like monthly meetup, or daily scrum, etc...).
We should be able to indicate what those activities are, and display them on a calendar.

Ability to manage OKR

OKR (Objectives and Key Results) are a fancy way of managing goals of employees each year. It was initially used by Google, and now many companies are using it.

We should support this methodology.

Hiring date

  • Hiring date on employee page
  • Edit of hire date on employee profile
  • Hiring date anniversaries on team page
  • Hiring date anniversaries on company page
  • Hiring date when adding an employee
  • New candidates coming this week in team
  • New candidates coming this week in company
  • Statistics to know how many employees have been hired after you

Ability to manage hardware and software profiles for teams (and/or positions)

In real life, hardware/software needs of developers is different from the needs of accountants.

We should be able to create profiles that are team specific (and/or position specific), so when we add a new employee to the company, we can assign a profile to him/her.

That way, we can assign the right hardware and softwares to the employee.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.