The Geek Collectors Network (GCN) is an online social platform specifically for collectors of geek culture, ranging from toys and action figures to memorabilia from popular franchises like Pokemon, Marvel, DC, and Disney. GCN will allow users to connect with fellow enthusiasts, curate and manage wishlists of sought-after items, and showcase their personal collections. A unique feature of GCN is the ability for users to share discoveries from unique or lesser-known shops with their network.
Create a new account by entering first name, last name, email, and password
Login with email and password
Logout
View a list of current friends
Filter friends by entering name in search bar
View a list of recommended friends
User Card had buttons to send request
Send request modal has optional request message
View a list of pending friend requests
User Card has buttons to accept or deny requests
Email button opens email client with template email
See the item feed (landing page) that shows items most recently added to GCN
Click on the item card to open the modal that displays more item details
Larger Image
Description
External link to the item (e.g. in an online store)
Item tags
Add items to personal Collection or Wishlist
View Collection or Wishlist Items pages
Remove Items from the Collection or Wishlist
Pending Friend Request tab
Users are dummy data pulled from another site, not the database
Accepting or denying friend requests has no functionality
Friend Suggestions tab
Accepting a Pending Friend Request does not add them to the Friends list
Copy the example environment file ./apps/api/.env.example
and paste it inside ./apps/api/.env
You’ll find pre-set environment variables.
VARIABLE | DESCRIPTION | DEFAULT |
---|---|---|
API_HOST | The address to bind the application to | 0.0.0.0 |
API_PORT | The address to bind the port to | 3000 |
DATABASE_HOST | The IPv4 address or hostname of the database | |
DATABASE_PORT | The port to your MySQL database | 3306 |
DATABASE_USER | The name of a user with read-write access to the GeekCollectorsNetwork database | root |
DATABASE_PASSWORD | The password for the database user | |
DATABASE_NAME | The name of the database to store application information | |
WEB_ROOT | A relative file path to the built frontend files |
Install all dependencies to build and run the app:
npm install -ws
After dependencies are installed, build the frontend with:
npm run build
If using a remote MySQL server, fill in the database configuration in the ./apps/api/.env
file.
In the remote database, create the GeekCollectorsNetwork and SessionStore databases. Find the commands in ./docker/mysql/initdb/init.sq
.
If hosting database locally, use the pre-set database configuration and run:
docker compose -p geek-collectors-network -f ./docker-compose.yml up -d mysql-resource
Start the application using:
npm run -w apps/api start
Project repository: https://github.com/Geek-Collectors-Network/geek-collectors-network
Client: https://github.com/Geek-Collectors-Network/geek-collectors-network/tree/main/apps/frontend
Server: https://github.com/Geek-Collectors-Network/geek-collectors-network/tree/main/apps/api