- Display meetings planned;
- Filter meetings for a particular team member;
- Add new meetings;
- Delete meetings;
Technologies stack:
- React
- SCSS
- JS
- Redux
- Install Node.js
- Fork this repository: ciklum-calendar
- Clone your newly created repo: https://github.com/<%your_github_username%>/ciklum-calendar/
- Go to folder ciklum-calendar
- To install all dependencies use npm install
- To start app use npm run build (production mode) or npm run start (development mode)
- pure JavaScript (ES6, ES next) with Babel transpiler (if needed) without frameworks;
- any CSS pre/post processor (ex. Sass / Scss / Post-CSS etc.);
- any module bundler (ex. Webpack / Rollup etc.);
- any other technologies that you’d like;
- You are building a meeting scheduler application for one meeting room.
- Your application should have two screens: “Calendar” screen and “Create event” screen; “Calendar” screen consists of a pre-defined table with 5 days (Mon-Fri) for columns and 9 time slots (10:00-18:00, one hour long each) for rows;
- There is a team of several people that can take part in the meetings (you can hardcode the list of team member in your code).
- One meeting can take only 1 hour and obtain one cell in the “Calendar” screen;
- On a “Calendar” screen user should be able to see all meetings scheduled for the meeting room;
- User should be able to filter meetings by person;
- In order to create new meeting user should click “New Event+” button at “Calendar” screen, after that he should be transferred to “Create event” screen. At that screen
- user should enter meeting title, select participants (can be multiple), select day (Mon-Fri), select time (10:00-18:00);
- The meeting can be successfully created if and only if the time slot for that day and time is free. Otherwise the error bar should be shown.
- After successful creation of an event, the user should be transferred back to the “Calendar” screen where new event should already be displayed.
- In order to delete a meeting user has to click the delete icon near the meeting title at “Calendar” screen and then confirm his action in a confirmation dialog.
- the minimum page width at which the app is checked for correct display and operation is 500px.
- Each team member should belong either to User class or Admin class.
- When user opens an application he/she has to authorize himself using the select modal (like in the example mockup).
- If authorized user is Admin he is able to create and update events(if Drag and Drop was implemented in your test task).
- If authorized user is User he/she is not able to create/update events. This means that 'Create Event' button should be hidden for those users.
- Implement possibility to change meeting day/time using drag and drop technique on “Calendar” view.
- the data is saved in database (ex: firebase)