Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: cesium.link 2.0 #71

Merged
merged 45 commits into from
Aug 14, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
3edc785
chore: remove previous code
joaodiaslobo Apr 19, 2024
8b31958
chore: setup phoenix project
joaodiaslobo Apr 19, 2024
3551528
feat: link and redirects logic
joaodiaslobo Apr 19, 2024
bb2f616
feat: initial google auth setup
joaodiaslobo Apr 19, 2024
2fd11a3
feat: auth system
joaodiaslobo Apr 19, 2024
e87744f
feat: link sorting
joaodiaslobo May 25, 2024
a7728e3
feat: emoji rendering and selecting
joaodiaslobo May 27, 2024
812cb18
feat: improve emoji picker component
joaodiaslobo May 28, 2024
62a20c4
feat: ux improvements
joaodiaslobo May 28, 2024
90238fa
chore: remove unecessary auth stuff
joaodiaslobo May 28, 2024
6310aba
chore: remove mailer
joaodiaslobo May 28, 2024
fe62c62
feat: remove unused template code
joaodiaslobo May 28, 2024
2ba61bf
chore: add formatter
joaodiaslobo May 29, 2024
12ed30f
feat: link archival
joaodiaslobo May 31, 2024
4d9150e
feat: socials
joaodiaslobo Jun 1, 2024
043bb23
chore: format
joaodiaslobo Jun 1, 2024
b3be8c1
feat: deployment config
joaodiaslobo Jun 3, 2024
76fdfb3
chore: add deployment scripts & staging environment config
joaodiaslobo Jun 10, 2024
e58512f
feat: qr code generation
joaodiaslobo Jun 10, 2024
f013ae9
refactor: navbar icons
joaodiaslobo Jun 10, 2024
2fa17a4
feat: seeds
joaodiaslobo Jun 11, 2024
cd6b234
feat: link & redirect seeds
joaodiaslobo Jun 11, 2024
1e3bfd0
test: remove irrelevant checks
joaodiaslobo Jun 11, 2024
c2de758
ci: add elixir workflows
joaodiaslobo Jun 11, 2024
95ee59b
fix: warnings
joaodiaslobo Jun 11, 2024
98f9ac5
test: links
joaodiaslobo Jun 11, 2024
e0a3eaf
test: redirects
joaodiaslobo Jun 11, 2024
443ef08
chore: add contributing guide and scripts
joaodiaslobo Jun 12, 2024
4158614
fix: add slug unique constraint
joaodiaslobo Jun 17, 2024
0cce810
feat: add confirm modals
joaodiaslobo Jun 17, 2024
86e87ee
test: home click increments link visits
joaodiaslobo Jun 18, 2024
04fe568
fix: url regex
joaodiaslobo Jun 27, 2024
6e4633a
feat: add confirmation modal to delete redirect action
joaodiaslobo Jun 27, 2024
ee6dec7
chore: remove unused dependencies from development dockerfile
joaodiaslobo Jun 28, 2024
e666a29
style: format js
joaodiaslobo Jun 28, 2024
ae2e18a
misc: format and wrong namings
joaodiaslobo Jun 28, 2024
ab1aa9a
build: remove unused dependency
joaodiaslobo Jun 28, 2024
00dbbfe
chore: fix staging env sample file
joaodiaslobo Jun 28, 2024
65380ac
refactor: use streams on home page
joaodiaslobo Jun 28, 2024
dc52f2d
refactor: create common schema module
joaodiaslobo Jul 2, 2024
26b795f
test: fix home click test
joaodiaslobo Jul 2, 2024
00ef3b2
chore: conversion script
joaodiaslobo Aug 10, 2024
04c3184
feat: mobile sidebar
joaodiaslobo Aug 12, 2024
3ed951c
ci: improve workflows
joaodiaslobo Aug 12, 2024
ec761f3
chore: add issue templates
joaodiaslobo Aug 12, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 45 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# This file excludes paths from the Docker build context.
#
# By default, Docker's build context includes all files (and folders) in the
# current directory. Even if a file isn't copied into the container it is still sent to
# the Docker daemon.
#
# There are multiple reasons to exclude files from the build context:
#
# 1. Prevent nested folders from being copied into the container (ex: exclude
# /assets/node_modules when copying /assets)
# 2. Reduce the size of the build context and improve build time (ex. /build, /deps, /doc)
# 3. Avoid sending files containing sensitive information
#
# More information on using .dockerignore is available here:
# https://docs.docker.com/engine/reference/builder/#dockerignore-file

.dockerignore

# Ignore git, but keep git HEAD and refs to access current commit hash if needed:
#
# $ cat .git/HEAD | awk '{print ".git/"$2}' | xargs cat
# d0b8727759e1e0e7aa3d41707d12376e373d5ecc
.git
!.git/HEAD
!.git/refs

# Common development/test artifacts
/cover/
/doc/
/test/
/tmp/
.elixir_ls

# Mix artifacts
/_build/
/deps/
*.ez

# Generated on crash by the VM
erl_crash.dump

# Static artifacts - These should be fetched and built inside the Docker image
/assets/node_modules/
/priv/static/assets/
/priv/static/cache_manifest.json
14 changes: 0 additions & 14 deletions .editorconfig

This file was deleted.

2 changes: 2 additions & 0 deletions .env.dev.sample
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
export GOOGLE_CLIENT_ID=<YOUR_GOOGLE_CLIENT_ID>
export GOOGLE_CLIENT_SECRET=<YOUR_GOOGLE_CLIENT_SECRET>
7 changes: 0 additions & 7 deletions .env.sample

This file was deleted.

3 changes: 3 additions & 0 deletions .env.stg.sample
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
export DATABASE_URL=ecto://<USER>:<PASSWORD>@db:<PORT>/cesium.link_stg
export GOOGLE_CLIENT_ID=<GOOGLE_CLIENT_ID>
export GOOGLE_CLIENT_SECRET=<GOOGLE_CLIENT_SECRET>
23 changes: 0 additions & 23 deletions .eslintrc.json

This file was deleted.

12 changes: 12 additions & 0 deletions .formatter.exs
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
[
import_deps: [:ecto, :phoenix],
plugins: [Phoenix.LiveView.HTMLFormatter, TailwindFormatter.MultiFormatter, DoctestFormatter],
heex_line_length: 300,
inputs: [
"*.{heex,ex,exs}",
"priv/*/seeds.exs",
"priv/repo/seeds/*.exs",
"{config,lib,test}/**/*.{heex,ex,exs}"
],
subdirectories: ["priv/*/migrations"]
]
24 changes: 24 additions & 0 deletions .github/ISSUE_TEMPLATE/0-feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: Feature Request
description: Suggest an idea for this project.
labels: ["enhancement"]
body:
- type: checkboxes
attributes:
label: Check for existing issues
description: Check the backlog of issues to reduce the chances of creating duplicates; if an issue already exists, place a `+1` (👍) on it.
options:
- label: Completed
required: true
- type: textarea
attributes:
label: Describe the feature
description: A clear and concise description of what you want to happen.
validations:
required: true
- type: textarea
attributes:
label: |
If applicable, add mockups / screenshots to help present your vision of the feature
description: Drag images into the text input below.
validations:
required: false
33 changes: 33 additions & 0 deletions .github/ISSUE_TEMPLATE/1-bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: Bug Report
description: Create a bug report to help us improve.
labels: ["bug"]
body:
- type: checkboxes
attributes:
label: Check for existing issues
description: Check the backlog of issues to reduce the chances of creating duplicates; if an issue already exists, place a `+1` (👍) on it.
options:
- label: Completed
required: true
- type: textarea
attributes:
label: Describe the bug / provide steps to reproduce it
description: A clear and concise description of what the bug is.
validations:
required: true
- type: dropdown
id: browsers
attributes:
label: What browsers are you seeing the problem on?
multiple: true
options:
- Firefox
- Chrome
- Safari
- Microsoft Edge
- type: textarea
attributes:
label: If applicable, add screenshots to help explain present your vision of the bug
description: Drag issues into the text input below.
validations:
required: false
98 changes: 98 additions & 0 deletions .github/actions/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
name: Setup Elixir Project
description: Checks out the code, configures Elixir, fetches dependencies, and manages build caching.
inputs:
otp-version:
required: true
type: string
description: OTP version to set up
elixir-version:
required: true
type: string
description: Elixir version to set up
build-deps:
required: false
type: boolean
default: true
description: True if we should compile dependencies
build-app:
required: false
type: boolean
default: true
description: True if we should compile the application itself
build-flags:
required: false
type: string
default: '--all-warnings'
description: Flags to pass to mix compile
install-rebar:
required: false
type: boolean
default: true
description: By default, we will install Rebar (mix local.rebar --force).
install-hex:
required: false
type: boolean
default: true
description: By default, we will install Hex (mix local.hex --force).
cache-key:
required: false
type: string
default: 'v1'
description: If you need to reset the cache for some reason, you can change this key.
runs:
using: "composite"
steps:
- name: Setup Elixir
uses: erlef/setup-beam@v1
with:
otp-version: ${{ inputs.otp-version }}
elixir-version: ${{ inputs.elixir-version }}

- name: Get deps cache
uses: actions/cache@v3
id: deps-cache
with:
path: deps/
key: ${{ runner.os }}-mix-${{ hashFiles(format('{0}{1}', github.workspace, '**/mix.lock')) }}
restore-keys: |
${{ runner.os }}-mix-

- name: Get build cache
uses: actions/cache@v3
id: build-cache
with:
path: _build/${{env.MIX_ENV}}/
key: build-${{ inputs.cache-key }}-${{ runner.os }}-${{ inputs.otp-version }}-${{ inputs.elixir-version }}-${{ env.MIX_ENV }}-${{ hashFiles('**/mix.lock') }}
restore-keys: |
build-${{ inputs.cache-key }}-${{ runner.os }}-${{ inputs.otp-version }}-${{ inputs.elixir-version }}-${{ env.MIX_ENV }}-

- name: Clean to rule out incremental build as a source of flakiness
if: github.run_attempt != '1'
run: |
mix deps.clean --all
mix clean
shell: sh

- name: Install Rebar
run: mix local.rebar --force
shell: sh
if: inputs.install-rebar == 'true'

- name: Install Hex
run: mix local.hex --force
shell: sh
if: inputs.install-hex == 'true'

- name: Install Dependencies
run: mix deps.get
shell: sh

- name: Compile Dependencies
run: mix deps.compile
shell: sh
if: inputs.build-deps == 'true'

- name: Compile Application
run: mix compile ${{ inputs.build-flags }}
shell: sh
if: inputs.build-app == 'true'
Loading
Loading