Skip to content

mcorrigan89/bigapp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📸 Photo Salon – A Hub for Photography Clubs & Competitions

Photo Salon is a modern web app designed for photographers who want to organize photo clubs, host competitions, and conduct critiques in a structured and engaging way. Inspired by the rich history of art salons, where artists gathered to showcase and refine their work, Photo Salon brings this tradition into the digital age—creating a space where photographers can connect, learn, and grow through community-driven feedback and friendly competition.

🚀 Why Photo Salon?

  • Inspired by Tradition – Reviving the spirit of classic art salons in a modern, digital space.
  • Built for Photographers – A tool by photographers, for photographers, designed to enhance skills through critique and competition.
  • Seamless & Intuitive – An easy-to-use platform to organize, compete, and connect in the photography world.

Postgres Next JS PNPM React React Hook Form TailwindCSS Zod TypeScript Go

Table of contents

Installation Quick Guide

Assuming you already have Node, go, and Postgresql installed

  NOTE: Use brew list to check your casks and and formulae already installed  

brew install golang-migrate
brew install pnpm
brew install bufbuild/buf/buf
brew install sqlc
brew install minio/stable/minio

Quick Start

1. Install server go modules

go mod tidy

2. Next, install protoc-gen-connect-go

go install connectrpc.com/connect/cmd/protoc-gen-connect-go@latest
[ -n "$(go env GOBIN)" ] && export PATH="$(go env GOBIN):${PATH}"
[ -n "$(go env GOPATH)" ] && export PATH="$(go env GOPATH)/bin:${PATH}"

3. Ensure the following is included in you .zshrc or related profile

# .zshrc or .bash_profile or whatever
alias air='~/go/bin/air'
export PATH=$PATH:$(go env GOPATH)/bin

4. Now install client node modules

pnpm install --dir client

5. You'll need to create a database for bigapp and grant permissions to admin

CREATE DATABASE bigapp;
GRANT ALL PRIVILEGES ON DATABASE bigapp TO admin;
GRANT ALL ON SCHEMA public TO admin;

Depending on the name you choose for the database you'll need to update the reference in 2 places:

# /server/.env
export POSTGRES_URL=postgresql://admin:admin@localhost:5432/<DB_NAME>?sslmode=disable
# Makefile
models:
	pg_dump --schema-only <DB_NAME> > server/schema.sql
	sqlc generate -f server/sqlc.yaml

6. Create account with Mailtrap that you'll use to test emails (important for sign-up/in flows)

  1. Sign-up with Mailtrap
  2. Navigate to email testing
  3. Add a project
  4. Add an inbox (Not sure if this happens automatically)
  5. Copy username and password for your project and set them to SMTP_USERNAME and SMTP_PASSWORD respectively inside your /server/.env

7. Export config env file for minio

export MINIO_CONFIG_ENV_FILE=/etc/default/minio

8. Run the make commands for setting things up

  NOTE: depending on where you want your minio store to be you'll need to update the Makefile  

minio:
  minio server  --console-address :9001 ./data
make minio
make migrate-up
make models
make codegen

9. Run the application 🎉

make dev

Other things

VSCode Extensions

Installation Links

You'll probably need to install a couple of tools before running the app:

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages