TinCat

TinCat - The Feline Dating App

Welcome to the official repository for TinCat, a themed full-stack web application designed as a playful dating platform for cats, utilizing Bootstrap for responsive design, Node.js for server-side logic, and PostgreSQL for data management. This README provides a comprehensive guide to understand the project’s structure, setup, and particularly its full-stack capabilities, including user account management, database interactions, and features like Google OAuth for login and the user swipe page with AI chatbox integration.

Full-Stack Functionality

TinCat leverages the power of Bootstrap for front-end responsiveness, Node.js for server-side logic, and PostgreSQL for robust data management. This combination ensures a seamless and efficient platform where users can:

Project Overview

TinCat is not just about beautiful interfaces; it’s about creating a robust application that handles real-world user data efficiently and securely. The app features a vibrant gradient background, playful icons, a gallery of charming cat profiles, and a user swipe interface with AI chatbox integration, enhancing the overall user experience across all devices.

Features


Preview of Responsive Layout

Preview of User Registration

Preview of Account Created Page


Preview of Login Page
Preview of Welcome Message

Preview of CheckOut Page

Preview of Payment Success Page


Preview of Newsletter Subscription Page


Preview of AI Chatbox

Security and Session Management

To enhance security, TinCat uses bcrypt for encrypting passwords and manages user sessions with cookies that last for 24 hours. Additionally, environment variables are used for sensitive configurations.

Password Encryption

Passwords are hashed using bcrypt with a salt round of 10, ensuring that user credentials are stored securely in the database.

Session Management

User sessions are managed with cookies that have a 24-hour expiration period. This ensures that users can remain logged in for a day without needing to re-enter their credentials.

Environment Variables

Sensitive information, such as database credentials , API keys and session secrets, are managed using environment variables. This prevents exposure of critical data in the codebase.

Error Handling in TinCat

TinCat implements robust error handling to ensure a smooth user experience during account creation, login, and promotional code redemption processes. Below are details on how specific errors are managed.

Promo Code Validation

During the checkout process, users can enter promo codes to receive discounts on their purchases. If a user enters an invalid promo code, the system will display an error message:

Example of error feedback on the checkout page:

Invalid Promo Code Error

Unique Email Constraint

When new user attempts to create an account, TinCat requires unique email address to avoid duplication. If an attempt is made to register with an already existing email, the system responds accordingly:

Example of error feedback on the sign-up page:

Username or Email Exists Error

Error Handling on the Login Page

TinCat’s login page incorporates comprehensive error handling to ensure a seamless and user-friendly authentication process. The system is designed to provide clear, actionable feedback for common issues such as incorrect passwords or unrecognized email addresses. Here’s how these errors are managed:

Incorrect Password

When a user enters a password that does not match the one stored in the database, the following actions are taken:

Example of error feedback for incorrect password on login page:

Password Error for Login Page

Unrecognized Email

If a user attempts to log in with an email address that is not found in the database, the system responds as follows:

Example of error feedback for unrecognized email on login page:

Email Error for Login Page

Getting Started

To get started with the TinCat project, check it out here: TinCat