LIFE Wellness Website

A Dynamic Web Application with Front-end and Back-end Integration

LIFE Wellness Website Project

Project Overview

The LIFE Wellness website is a dynamic web application developed as part of the Web Programming course at RMIT University. The website aims to provide online wellness services, including Yoga, Meditation, Stretching, and Healthy Habits, to users in the post-COVID-19 era.

Project Highlights

  • Developed a responsive front-end using HTML, CSS, and JavaScript
  • Implemented back-end functionality using PHP and MySQL database
  • Integrated user registration, login, and personalized user experiences
  • Utilized AWS services like Elastic Beanstalk for hosting and Route 53 for domain routing
  • Generated SSL certificate using AWS Certificate Manager for secure HTTPS communication

Technologies Used

  • Front-end: HTML, CSS, JavaScript, jQuery, Bootstrap
  • Back-end: PHP, MySQL
  • Hosting: AWS Elastic Beanstalk
  • Domain Routing: AWS Route 53
  • SSL Certificate: AWS Certificate Manager

Website Features

  • User Registration and Login: Secure registration and login functionality for users
  • Personalized User Experience: Customized content in 'My Services' based on user preferences
  • Service Pages: Detailed information on offered services like Yoga, Meditation, Stretching, and Healthy Habits
  • Admin Dashboard: Separate admin portal to monitor user data and service utilization
  • Responsive Design: Mobile-friendly and responsive layout for optimal viewing on different devices

Technical Details and Requirements

User Registration and Login

The LIFE Wellness website implements a secure user registration and login system. User information, including email and password, is collected through a registration form and stored in a MySQL database. The password is hashed using a secure algorithm before being stored to ensure data privacy.

During the login process, user credentials are validated against the stored information in the database. Upon successful authentication, a session is created to maintain the user's logged-in state throughout their interaction with the website.

Caching and Performance Optimization

To improve website performance and reduce server load, caching techniques are employed. Frequently accessed data, such as user preferences and service information, are cached using server-side caching mechanisms like Redis or Memcached. This allows for faster retrieval of data and reduces the need for repetitive database queries.

Additionally, client-side caching is implemented using browser caching headers. Static assets, such as images and CSS files, are served with appropriate cache headers to enable efficient caching by the user's browser, resulting in faster page loads and improved user experience.

Cookies and Session Management

Cookies are utilized to store user-specific information and maintain session state. Upon successful login, a session cookie is set in the user's browser, containing a unique session identifier. This cookie is securely transmitted between the client and server to authenticate the user's requests and maintain their logged-in state.

The server-side session management system, implemented using PHP's built-in session handling functions, associates the session identifier with the user's data stored on the server. This allows for personalized experiences, such as displaying user-specific content and preferences.

Logout Functionality

The website includes a logout feature that allows users to securely end their session. When a user clicks on the logout button, the server-side script invalidates the user's session, removes the associated session data, and clears the session cookie from the user's browser. This ensures that the user is properly logged out and their session is terminated.

Form Validation and Sanitization

To ensure data integrity and protect against potential security vulnerabilities, all user inputs through forms are validated and sanitized on both the client-side and server-side. Client-side validation is performed using JavaScript to provide immediate feedback to the user and reduce unnecessary server requests.

On the server-side, PHP's built-in validation and sanitization functions are used to validate and clean user inputs. This includes checking for required fields, validating data formats (e.g., email addresses), and sanitizing user inputs to prevent cross-site scripting (XSS) attacks and SQL injection vulnerabilities.

Front-end and Back-end Communication

The front-end of the LIFE Wellness website, built using HTML, CSS, and JavaScript, communicates with the back-end PHP scripts through HTTP requests. When a user interacts with the website, such as submitting a form or requesting data, the front-end sends an HTTP request to the appropriate back-end script.

The back-end script processes the request, interacts with the MySQL database if necessary, and generates an appropriate response. The response is then sent back to the front-end, where it is handled by JavaScript to update the user interface dynamically. This communication between the front-end and back-end enables seamless data exchange and allows for a responsive and interactive user experience.

AWS Integration

To enhance the scalability and reliability of the LIFE Wellness website, AWS services were utilized. Elastic Beanstalk was used to host the website, providing easy deployment and management of the application. Route 53 was employed for domain routing, allowing users to access the website using a custom domain name (life.mjameh.com).

Additionally, an SSL certificate was generated using AWS Certificate Manager to enable secure HTTPS communication, ensuring the privacy and integrity of user data transmitted between the client and server.

Challenges and Learnings

Developing the LIFE Wellness website presented various challenges, including integrating front-end and back-end components, managing user authentication and sessions, and ensuring data security. Overcoming these challenges required a deep understanding of web development concepts, PHP programming, and database management.

Throughout the project, valuable lessons were learned about building dynamic web applications, working with AWS services, and implementing best practices for web development. The experience gained from this project has significantly enhanced my skills in full-stack web development and cloud deployment.

Project Resources

The LIFE Wellness website project demonstrates my ability to develop a comprehensive web application, integrating front-end and back-end technologies, and leveraging cloud services for scalable and secure deployment. It showcases my skills in web development, problem-solving, and attention to detail.

I invite you to explore the live website and delve into the codebase on GitHub. If you have any questions or would like to discuss the project further, please feel free to reach out. Thank you for your interest!