Skemi (pronounced ske-mi) is an event planning and scheduling app built for a sydney based company that plans and services approximately 200 events a year. These events require meticulous organisation and as the business scales, current planning and scheduling processes have become outdated, slow, and unreliable.
The purpose of this app is to streamline the event planning process for Shared Affair by replacing the current procedure and tools in place; they currently use google calendar, excel spreadsheets and direct communication. The app will allow admins to easily create and roster events as well as provide a streamlined method for employees to track upcoming events, allow employees to self register for work, provide relevant event information including other rostered employees, food lists and custom notes, and provide a way to easily track upcoming work schedules.
Although there are existing systems and software like Deputy, foundU and Kronos that handle employee scheduling, these systems are built around immutable variables that make it difficult for event planning and catering businesses to use. As it stands, most rostering tools allow an admin user to create a roster based on a consistent location (this may be the entire business or an area of the business like the “Kitchen” at a cafe).
While a business can set different locations, the information associated to the location does not allow for changes or updates and lacks the functionality to create a significant number of “locations”. In addition, these systems do not allow a location to be created with associated document uploads, notes, or specific information and because of this lacking functionality they do not meet the needs of Shared Affair who are looking for a solution that allows them to plan and schedule out hundreds of events and rosters and share the information with it’s employees.
- Secure account creation
- Authentication through third party API
- Simple log in/out (saving secure account data)
- Admin and standard user permissions
- Password and account recovery
Create a record for an event that logs and tracks time, location details and rostered employees.
Users can interact with all created events including relevant details and information.
- Users can schedule themselves to work an event
- Admin users can update event details and information
- Admin users can delete an event
- Admin users can update an event roster
- Admin users can delete shifts and rosters
- Users (admin and standard) can interact with a navigation bar and page links
- Users are notified when an action is completed on event records (pop up confirmations)
- Users can view future scheduled events
- Users can view their scheduled events
Given this app is being created to solve a specific problem within a Sydney based events and catering business called Shared Affair, the target audience are the managers and employees within the business.
Specific target audience personas are portrayed in the app by implementing features for the different job roles and responsibilities of users including features and functionality for managers (admins in the system) or general employees (users in the system). These two groups of users make up the target audience and are being considered throughout the planning and build process.
React.js will be used to build the user interface. While React.js is a requirement of this assignment, we’re also choosing to use this JavaScript library because of its simple component based infrastructure and available methods to easily manage UI state, rendering and re-rendering.
We have chosen to use Rails for the backend CRUD operations and routes as it uses the MVC architecture allowing for a straight forward implementation and integration of the back end as well as it’s simple integration to React through either web packer and the react-rails gem, or using the Rails API.
Postgresql will be used for the database as it is a powerful, open source object-relational database system with a strong reputation and has been used by all team members in previous projects.
MUI started back in 2014, to unify React and Material Design and offers a complete styling library for react.
As an admin user I want to be able to create a record for an upcoming event so that I can track relevant information
- As an admin user I want to be able to schedule an event so that I can track relevant event information and schedule employees to work
- As an admin user I want to have the option to update an event so that changes can be made to the event information
- As an admin user I want to be able to delete an event so that everyone is aware if an event is cancelled
- As an admin user I want to assign employees to work an event so that I can proactively fill shifts with available employees
- As an admin user I want to be able to update a roster so that I can make changes if circumstances change and someone can no longer work an event
- As an admin user I want to receive a confirmation every time a change is made to an event or roster
As a user I want a secure way to sign up for the app so I can access all app features and return to my saved information
- As a user I want a secure way to create an account so that I can access all of the features in the app
- As a user I want to log in and out of the app so that I can save my secure information
- As a user I want to be able to reset my password if I forget it
- As a user I want to be able to sign up as a standard user or an admin user
- As a user I want to create a profile page with a profile picture so that others can see who they are working with at the event
- As a user I want to add personal contact information so that others in the business can contact me
- As a user I want to add my job role to my personal profile so that others can see my job role
- As a user I want to be able to update information so that I can keep information updated if it changes
- As a user I want to be able to update my profile picture so that it stays current
- As a user I want to see when an event is scheduled including the name, location, date and time and contact information for client.
- As a user I want to be able to view what job roles are needed for the event so that I can roster myself to work
- As a user I want to see how many job roles are listed at the event
- As a user I want to be able to register my self for a shift so that I can work at an event
- As a user I want to get a confirmation that I am signed up to an event so that I can be sure the request went through
- As a user I want to view all of the events I am registered to work
- As a user I want to see others that are working the event so that I can see who I am working with
- As a user I want to see the event details so that I can make an informed decision about working the event
- As a user I want to be able to view the upcoming events I am rostered/scheduled to work so that I never miss a work day
- As a user I want to see event information so that I know where and when the event is scheduled
- As a user I want to see who is working at an event so that I can work with people I know
- As a user I want to see what jobs are available at an event so that I can know if there's a position vacant for a job role that suits me
- As a user I want to interact with easy to use links so that I can easily navigate the website
- As a user I want a website that is visually appealing so that I'm motivated to return and use it again
- As a user I want process confirmations so that I know when something has been selected or completed
Note: - the first user created for the application is the default administration user and will have administrative permissions. All other users after are defaulted to standard users.
























