Giter Club home page Giter Club logo

kanwalnainsingh / opendesk Goto Github PK

View Code? Open in Web Editor NEW
65.0 65.0 45.0 13.9 MB

OpenDesk is an open source system for helping organisation optimize utilization office desk space. System will help employees to reserve their office desk when to plan to work from office.

Home Page: https://www.bookopendesk.com

License: GNU General Public License v3.0

Java 32.90% Dockerfile 1.69% HTML 0.34% CSS 2.15% JavaScript 62.90% Shell 0.01%
active-community bookopendesk demo desk-space deskbooking docker goodfirstissue java kanwal kanwal-nain learning office-desk opendesk opensource reactjs spring start-with-opensource

opendesk's People

Contributors

alebricio avatar carlosfabiang avatar chetanchilhate avatar devjuliet avatar johandelvallev avatar juiceyduecy avatar kanwalnainsingh avatar manaligoel95 avatar mayralgr avatar minal2425 avatar pebriancharliady avatar procupid avatar ryagnaguru avatar saswatarakshit avatar sudhirsharma20 avatar urielmad avatar yagnaguru-hobsons 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

opendesk's Issues

Code guidelines

Add relevant documentation for coding standard to be followed in the project.

Front end architecture diagram and library finalisation.

What we need?

  • Project Structure diagram.
  • Separation of concern for for various code layer is crucial to maintain project in future.
  • Don’t overthink the application structure and avoid using too many nested files and folders
  • Divide logical components like, datastore, react components, events and dom.
  • Each component should be testable.
  • Structure to include where test case will be added.

Below article for inspiration https://www.simform.com/react-architecture-best-practices/

API to reserve booking for desk.

Requirement:

UI will call below service when user select a site,floor and date for booking. At present this API exist but just save whatever request comes.

Update API:

CODE_BASE: code_base/microservices/booking-service
API: /booking
Method Type: POST

API will call desk-service GET: /desk/{orgId}/{siteId}/{floorId} this will return all desk that is for the organisation List.

Create a method in BookingService that will take BookingRequest from UI along with list of all desk from desk service.
Lookup booking service db for requested booking date. Check for all desk if booking not available for particular date then return any one desk.

Note: You might need to create data in micro-service via swagger api. Use below url
http://localhost:{port}/swagger-ui.html

End to end architecture plan for AWS.

This should include high level architect and deployment strategy on AWS. Key features to include.

  • Cloudfront for CDN
  • Cognito for authentication.
  • S3 for hosting static content.
  • ECS for image repository
  • EKS for container orchestration.

Employee search and menu screen bug

There are some minor inconsistencies with development and design. This issue is to highlight those.

Menu Screen

Frame 1820

Search Screen

As you can see the search screen doesn't really match with the design of the desktop version.

Frame 1821

OrganisationService miicroservice structure.

What need to be done?

Create a microservice project named organisation-service using Spring Boot 2.3.4 and OpenJDK 15.

Endpoints:

/organisation API that will perform respective CRUD operation. Use appropriate below conventions.

HTTP Verb CRUD Entire Collection (e.g. /organisations) Specific Item (e.g. /organisations/{id})
POST Create 201 (Created), 'Location' header with link to /customers/{id} containing new ID. 404 (Not Found), 409 (Conflict) if resource already exists..
GET Read 200 (OK), list of customers. Use pagination, sorting and filtering to navigate big lists. 200 (OK), single customer. 404 (Not Found), if ID not found or invalid.
PUT Update/Replace 405 (Method Not Allowed), unless you want to update/replace every resource in the entire collection. 200 (OK) or 204 (No Content). 404 (Not Found), if ID not found or invalid.
PATCH Update/Modify 405 (Method Not Allowed), unless you want to modify the collection itself. 200 (OK) or 204 (No Content). 404 (Not Found), if ID not found or invalid.
DELETE Delete 405 (Method Not Allowed), unless you want to delete the whole collection—not often desirable. 200 (OK). 404 (Not Found), if ID not found or invalid.

For JSON contract refer wireframe, don't add additional not part of current scope of requirement.
https://github.com/kanwalnainsingh/OpenDesk/blob/main/docs/planning/images/organization_onboarding_wireframe_v1.jpg
Conventions to follow:
https://stackoverflow.blog/2020/03/02/best-practices-for-rest-api-design/

API to get all desk for particular organisation, site and floor.

Requirement

New API

Microservice: desk-service
Code_Base: https://github.com/kanwalnainsingh/OpenDesk/tree/main/code_base/micro-services/desk-service
Method Type: GET
Path: /desk/{orgId}/{siteId}/{floorId}

What will API do?

API will fetch list of all the desk for particular organisation, site and floor.

Acceptance criteria.

  1. Given {orgId} {siteId} {floorId} has corresponding data API should return List for requested data with HTTP Status 200.
  2. Given {orgId} {siteId} {floorId} does not have corresponding data API should return empty List with HTTP Status 204 No Content.
  3. Given any of {orgId} {siteId} {floorId} is missing API should return empty List with HTTP Status 204 No Content.

Note: Create relevant data to test using swagger api at http://localhost:{port}/swagger-ui.html

Employee Menu and Search screen

The Designs are ready for both screens. Both the mobile version and Desktop version designs are attached as the screens should be responsive.

FIGMA FILE

MENU SCREENS

MOBILE VERSION >
Employee page

DESKTOP VERSION>
This screen will work as an overlay to the home screen
Landing Page

SEARCH SCREENS

MOBILE VERSION >
Employee page-1

DESKTOP VERSION >
Landing Page-1

Web UI Layout

  • Design the layout for the UI/UX for organisation screen.
  • Layout should include a header
  • Refer Wireframe under in planning docs read me.MD

Employee Home Screen Development

The designs are ready and contain both desktop and mobile versions as all screens should be responsive.
Please try to use SVGs instead of PNGs wherever needed.

FIgma File

DESKTOP VERSION >
Landing Page

MOBILE VERSION >
Employee page

Employee page-1

Employee Booking Screen

[Figma File]

https://www.figma.com/file/s9ZDbblJ9wnfisoOZI7kTj/bookopendesk?node-id=683%3A548
The designs are ready and contain both desktop and mobile versions as all screens should be responsive.

This issue is for the development of following screens:

  • Booking Screen
  • Menu

[Figma File] UX design for images style details.

https://www.figma.com/file/s9ZDbblJ9wnfisoOZI7kTj/bookopendesk?node-id=683%3A548

Here is the preview for the home screen:(for the rest of the design please check out the figma file)

MOBILE VERSION

image
image
image
image
image
image
image

[Figma File]

https://www.figma.com/file/s9ZDbblJ9wnfisoOZI7kTj/bookopendesk?node-id=683%3A548

API: Organisation Site Registration.

Requirement

Update is required in existing API as per new design. Remove data fields that are not part of below contract.

Existing API

Method Type: POST
URL: organisation-service/organisation
Request Body:

{
  "orgId": "string",
  "companyName": "string",
  "location": {
    "address": "string",
    "geoLocation": "string"
  },
  "sites": [
    {
      "name": "string",
      "floors": [
        {
          "name": "string",
          "openDesk": "string",
          
        }
      ]
    }
  ]
}

API to check if desk is available for booking on a particular date

NEW API:

/api/desk-service/availability
POST

requestBody:
{
"orgId": "string"
"floorId":"string"
"requestDate": "string" dd/MM/yyyy

}

Action: api will call booking-service- get all the booking for particular data on orgId and floorId. API will return a desk which is not already booked in booking service.

Landing Page and How-It-Works Pages

This Issue is to develop the designs for the following pages.

- Landing Page

Landing Page (4)

Desktop Verson ^^^

Landing Page (5)

Mobile Version ^^

I HAVE PROVIDED PREVIEW JUST FOR THE LANDING PAGE , for others please check the figma file.

- About Us

- Menu

- How it works (5 steps)

- Contact Us (Design for desktop is not final until further Update)

- Organization Selection screen

All pages will be responsive thus I have designed two versions of each page; for both desktop and mobile.

Figma Design File

(If you are a designer and would like to improve anything, please ping me so as to gain editing access)

Mobile Prototype

Desktop Prototype

GIT Actions CI action for front end.

Requirement:

With every pull request raised, CI should run that will build the front end project, execute test suite.

Acceptance Criteria

  • Give all the case cases pass with the new changes build should pass and move to next step.
  • Given there are no error at the build step build should pass and create deployable artifact.

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.