This is a project created for module (Project: Java and Web Application Development) for IU International University of Applied Science.
The modern world is fast-paced and demanding, and it's becoming increasingly difficult to keep track of personal, work, and family tasks. People are often juggling multiple calendars, making it hard to see everything in one place. This can lead to missed appointments, confusion, and stress.
Our project aims to solve this problem by creating a comprehensive and user-friendly personal scheduling app. This app will allow users to combine all of their tasks and appointments into one calendar, giving them a clear and organized view of their schedule. With the ability to create, view, delete, and move events, users can easily keep track of their busy lives.
In addition, users will be able to categorize their tasks and view their calendar in various ways, such as by day, week, month, or year. The app will handle overlapping time slots and conflicting appointments in an intuitive and user-friendly manner, ensuring a seamless and stress-free scheduling experience.
- Combine tasks, appointments, and events in a single, organised calendar.
- Categorize events to easily distinguish between different types of activities.
- View your calendar by day, week, month, or year to match your preferred planning style.
- Handle overlapping time slots and conflicting appointments seamlessly.
The target user group for this personal scheduling app will be individuals and small businesses who require a simple and efficient way to manage their schedules. This includes busy professionals, students, and entrepreneurs who need to keep track of appointments, tasks, and events.
By using this personal scheduling app, individuals and small businesses will be able to streamline their schedule management and increase their productivity. The app will provide an easy-to-use interface for adding and organizing events, appointments, and tasks, and will also allow users to set reminders and notifications to ensure they never miss a scheduled event. Additionally, the app will be accessible from anywhere, so users can manage their schedules on-the-go.
- ReactJS: Used for building the user interface of the application.
- Material-UI: Used for the design and styling of the overall components.
- Bootstrap 5: Used for the design of the Calendar component (it doesn't support MUI).
- Firebase Authentication: Used for secure user authentication and authorisation.
- Firebase Firestore: NoSQL database used for storing calendar events and user data.
- Firebase Hosting: Used to host the front-end of the web application, providing a reliable and scalable hosting solution.
To run the application locally, follow these steps:
- Clone this repository using
git clone https://github.com/halghasra/PlanMate.git
. - Navigate to the project directory using
cd PlanMate
. - Install project dependencies using
npm install
. - Configure Firebase by adding your Firebase project credentials in
src/firebase.js
. - Start the development server using
npm start
. - Your application should now be running at
http://localhost:3000
.
Feel free to visit my live demo and start managing your schedule efficiently with PlanMate!
Test Case: Verify that a user can successfully register an account.
Steps:
- Open the registration page.
- Fill in valid user registration details.
- Click the "Register" button.
- Check if the user is redirected to the home page.
- Verify that the user's profile is created in the database.
Test Case: Verify that a registered user can log in.
Steps:
- Open the login page.
- Enter valid login credentials.
- Click the "Login" button.
- Check if the user is redirected to the home page.
Test Case: Verify that a user can add a new event to the calendar.
Steps:
- Log in as a registered user.
- Navigate to the calendar page.
- Click on a date to open the "Add Event" popup.
- Fill in event details (title, date, time, etc.).
- Click the "Create" button.
- Verify that the event is displayed on the calendar.
Test Case: Verify that a user can edit an existing event.
Steps:
- Log in as a registered user.
- Navigate to the calendar page.
- Click on an existing event to open the "Edit Event" popup.
- Modify event details (e.g., title, date, time).
- Click the "Save" button.
- Verify that the event's details are updated on the calendar.
Test Case: Verify that a user can delete an existing event.
Steps:
- Log in as a registered user.
- Navigate to the calendar page.
- Click on an existing event to open the "Edit Event" popup.
- Click the "Delete" button.
- Verify that the event is removed from the calendar.
Test Case: Verify that a user can move an existing event between time blocks
Steps:
- Log in as a registered user.
- Navigate to the calendar page.
- Click and hold an existing event.
- Drag the event into a different day block.
- Verify that the event is moved to the new block.
Test Case: Verify that a user can extend or reduce an existing event.
Steps:
- Log in as a registered user.
- Navigate to the calendar page.
- Move the mouse to any far end of an existing event
- The mouse pointer will change into a sideway arrow
- Click and move your mouse to expand or reduce the event.
- Verify that the event is expanded or reduced based on the user choice.
For each of the above test cases, you can use the following test data:
Test Data: Name: John Wick, Email: [email protected], Password: Test123!
Test Data: Email: [email protected], Password: Test123!
Test Data: Event Title: Meeting with Client, Date: July 10, 2023, Time: 3:00 PM - 4:00 PM
Test Data: Event Title: Updated Meeting, Date: July 15, 2023, Time: 2:30 PM - 3:30 PM
Test Data: Event Title: Event to Delete, Date: July 20, 2023, Time: 10:00 AM - 11:00 AM
Note: For testing purposes, you can use the existing account with the following credentials, which is prefilled with test data:
- Email: [email protected]
- Password: password123