GatorFish is a user-friendly web application designed to simplify the process of buying and selling goods online. Inspired by platforms like eBay, our app allows users to create listings for items they wish to sell, browse a wide variety of products, and connect with potential buyers and sellers seamlessly. The platform is focused on providing a safe, intuitive, and feature-rich environment for peer-to-peer commerce.
-
User Authentication
- Secure sign-up and login system
- Profile management with user information
- Password change functionality
-
Product Management
- Create, edit, and delete product listings
- Upload product images with descriptions
- Categorize items for better organization
-
Search and Filtering
- Search for items using keywords
- Filter results by categories
- View detailed product information
-
User Interactions
- Contact sellers directly through the platform
- Like and save favorite items
- View your posted and liked items in your profile
-
Recommendation System
- Get personalized item recommendations based on browsing history
- Discover new items on the home page
-
Backend:
- Go (v1.16 or higher)
- MySQL (v8 or higher)
- Redis (optional, for caching)
-
Frontend:
- Node.js (v14 or higher)
- npm (v6 or higher)
-
Clone the repository:
git clone https://github.com/yourusername/GatorFish.git cd GatorFish -
Configure the database:
- Create a MySQL database for the application
- Update the database connection settings in
backend/config/config.yaml
-
Navigate to the backend directory and install dependencies:
cd backend go mod download -
Start the backend server:
go run main.go
The backend server will run on http://localhost:8080
-
Open a new terminal and navigate to the frontend directory:
cd frontend/my-app -
Install dependencies:
npm install
-
Start the frontend development server:
npm start
The frontend application will run on http://localhost:3000
cd backend
go test ./...cd frontend/my-app
npm testcd frontend/my-app
npm run cypress:open # For interactive testing
npm run cypress:run # For headless testing-
Creating an Account:
- Click the "Sign Up" button in the top-right corner
- Fill in your details (username, email, phone number, and password)
- Click "Register" to create your account
-
Logging In:
- Click the "Login" button
- Enter your username and password
- Click "Login" to access your account
-
Changing Password:
- Navigate to your profile page
- Click "Change Password"
- Enter your old password and new password
- Click "Update" to save changes
-
Home Page Browsing:
- The home page displays recommended items
- Scroll through the items to browse the available products
-
Category Browsing:
- Click on any category from the navigation menu
- Browse items within the selected category
-
Search Functionality:
- Use the search bar at the top of any page
- Enter keywords related to the items you're looking for
- Press Enter or click the search icon to see results
-
Viewing Item Details:
- Click on any item card to see detailed information
- View images, descriptions, price, and seller information
-
Contacting Sellers:
- On the item details page, click "Contact Seller"
- View the seller's contact information (name, email, phone)
- Use this information to reach out to the seller directly
-
Creating a Listing:
- Click "Sell" in the navigation menu
- Fill in the item details (title, description, category, price)
- Upload an image of your item
- Click "Submit" to publish your listing
-
Editing a Listing:
- Navigate to your profile page
- Find the item under "My Listings"
- Click "Edit" on the item you want to modify
- Update the information and click "Save Changes"
-
Removing a Listing:
- Navigate to your profile page
- Find the item under "My Listings"
- Click "Delete" to remove the listing
-
Liking Items:
- Click the heart icon on any item card or details page
- The item will be added to your "Liked Items"
-
Viewing Liked Items:
- Navigate to your profile page
- See all your liked items under the "Favorites" section
-
Removing from Likes:
- Click the filled heart icon on a liked item
- The item will be removed from your "Liked Items"
The backend provides RESTful APIs for all functionality. Key endpoints include:
POST /auth/register- Register a new userPOST /auth/login- User loginPOST /auth/change- Change passwordPOST /auth/profile- Get user profile
POST /items/create- Create a new item listingPOST /items/update- Update an existing itemPOST /items/id- Get item by IDPOST /items/Category- Get items by categoryPOST /items/Search- Search for itemsPOST /items/recommend- Get recommended items
POST /items/AddLike- Add an item to liked itemsPOST /items/RemoveLike- Remove an item from liked itemsPOST /behavior/view- Record user viewing behavior
If you encounter any issues while using GatorFish:
-
Login Problems:
- Ensure your username and password are correct
- Check that the backend server is running
-
Image Upload Issues:
- Verify the image format is supported (JPG, PNG)
- Ensure the file size is under the upload limit
-
API Connection Errors:
- Check that both backend and frontend servers are running
- Verify your network connection
- Check the browser console for specific errors
-
Database Connection Issues:
- Verify your database credentials in the config.yaml file
- Ensure your MySQL server is running
- Siyuan Pan (Back-End)
- Chuming Wang (Front-End)
- Jingwen Liu (Back-End)
- Ganyuan Chang (Front-End)