Skip to content

Commit 21e415d

Browse files
committed
truncated history
0 parents  commit 21e415d

File tree

244 files changed

+26187
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

244 files changed

+26187
-0
lines changed

.gitignore

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# Nuxt dev/build outputs
2+
.output
3+
.data
4+
.nuxt
5+
.nitro
6+
.cache
7+
dist
8+
9+
# Node dependencies
10+
node_modules
11+
12+
# Logs
13+
logs
14+
*.log
15+
16+
# Misc
17+
.DS_Store
18+
.fleet
19+
.idea
20+
21+
# Local env files
22+
.env
23+
.env.*
24+
!.env.example
25+
26+
# Editor directories and files
27+
.vscode/*
28+
!.vscode/extensions.json
29+
.idea
30+
*.suo
31+
*.ntvs*
32+
*.njsproj
33+
*.sln
34+
*.sw?

Dockerfile

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# Stage 1 - build
2+
FROM node:21.7.1-alpine AS builder
3+
WORKDIR /app
4+
COPY package*.json ./
5+
RUN npm install
6+
COPY . .
7+
RUN npm run build
8+
9+
# Stage 2 - production
10+
FROM node:21.7.1-alpine AS final
11+
WORKDIR /app
12+
ADD package.json .
13+
ADD nuxt.config.ts .
14+
# COPY --from=builder /app/.nuxt ./.nuxt
15+
# COPY --from=builder /app/node_modules ./node_modules
16+
# COPY --from=builder /app/assets ./assets
17+
COPY --from=builder /app/.output ./.output
18+
ENV NUXT_HOST=0.0.0.0
19+
ENV NUXT_PORT=3000
20+
EXPOSE 3000
21+
CMD ["npm", "start"]

LICENSE

Lines changed: 674 additions & 0 deletions
Large diffs are not rendered by default.

README.md

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
# Qua
2+
3+
Open source QDA software running on Vue + Nuxt.js + Supabase and a little bit of Tailwind CSS.
4+
5+
If you are going to develop this project yourself, you will need to create a `.env` file in the root of the project with the following content:
6+
7+
```bash
8+
SUPABASE_URL=https://your-supabase-url.supabase.co
9+
SUPABASE_KEY=your-supabase-key
10+
```
11+
12+
That should do it for now...more to come.
13+
14+
## Setup
15+
16+
Make sure to install the dependencies:
17+
18+
```bash
19+
# npm
20+
npm install
21+
22+
# pnpm
23+
pnpm install
24+
25+
# yarn
26+
yarn install
27+
28+
# bun
29+
bun install
30+
```
31+
32+
## Development Server
33+
34+
Start the development server on `http://localhost:3000`:
35+
36+
```bash
37+
# npm
38+
npm run dev
39+
40+
# pnpm
41+
pnpm run dev
42+
43+
# yarn
44+
yarn dev
45+
46+
# bun
47+
bun run dev
48+
```
49+
50+
## Production
51+
52+
Build the application for production:
53+
54+
```bash
55+
# npm
56+
npm run build
57+
58+
# pnpm
59+
pnpm run build
60+
61+
# yarn
62+
yarn build
63+
64+
# bun
65+
bun run build
66+
```
67+
68+
Locally preview production build:
69+
70+
```bash
71+
# npm
72+
npm run preview
73+
74+
# pnpm
75+
pnpm run preview
76+
77+
# yarn
78+
yarn preview
79+
80+
# bun
81+
bun run preview
82+
```
83+
84+
Check out the [deployment documentation](https://nuxt.com/docs/getting-started/deployment) for more information.

app.vue

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
<script setup lang="ts">
2+
import themesList from '~/assets/themes.json'
3+
4+
const user = useSupabaseUser()
5+
const configStore = useConfigStore()
6+
7+
if (configStore.config.random_theme) {
8+
const themes = JSON.parse(JSON.stringify(themesList)).sort((a, b) =>
9+
a.name.localeCompare(b.name)
10+
)
11+
const randomTheme = themes[Math.floor(Math.random() * themes.length)]
12+
setTheme(randomTheme.name)
13+
} else {
14+
if (configStore.config.theme) {
15+
setTheme(configStore.config.theme)
16+
} else {
17+
setTheme('camping')
18+
}
19+
}
20+
21+
if (user.value) {
22+
configStore.fetchConfig()
23+
}
24+
</script>
25+
26+
<template>
27+
<div class="app-content content-grid">
28+
<NuxtLoadingIndicator :color="'var(--main-color)'"/>
29+
<AppHeader />
30+
<NuxtPage />
31+
<AppFooter />
32+
</div>
33+
</template>
34+
35+
<style scoped>
36+
.app-content {
37+
font-family: Roboto, Helvetica, Arial, sans-serif;
38+
min-height: 100vh;
39+
height: 100vh;
40+
width: 100%;
41+
justify-content: center;
42+
display: grid;
43+
grid-template-rows: [page-start] var(--gutter) [padding-start] auto [content-start] 1fr [content-end] auto [page-end];
44+
}
45+
46+
.content-grid {
47+
display: grid;
48+
grid-template-columns:
49+
[full-width-start] var(--gutter) [full-width-padding-start] var(
50+
--narrow-width-gutter
51+
)
52+
[content-start] 1fr [content-end] var(--narrow-width-gutter)
53+
[full-width-padding-end] var(--gutter)
54+
[full-width-end];
55+
}
56+
</style>

assets/css/brands.min.css

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

assets/css/fontawesome.min.css

Lines changed: 9 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

assets/css/main.css

Lines changed: 133 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
1+
:root{
2+
--gutter: 32px;
3+
--narrow-width-gutter: 64px;
4+
--content-max-width: 1500px;
5+
--radius: 10px;
6+
--transition: all 0.3s;
7+
--font-family: 'Roboto mono', monospace;
8+
--alt-font-family: 'Poppins', sans-serif;
9+
}
10+
11+
body {
12+
margin: 0;
13+
padding: 0;
14+
overflow-x: hidden;
15+
background-color: var(--bg-color);
16+
color: var(--text-color);
17+
font-family: var(--font-family);
18+
transition: var(--transition);
19+
}
20+
21+
h1, h2, h3, h4, h5, h6 {
22+
font-family: var(--font-family);
23+
}
24+
25+
input, textarea{
26+
padding: 10px;
27+
margin: 5px 0;
28+
border: 0;
29+
border-radius: 10px;
30+
background-color: var(--sub-alt-color);
31+
font-family: var(--font-family);
32+
font-size: 1rem;
33+
color: var(--text-color);
34+
}
35+
36+
input::placeholder textarea::placeholder{
37+
color: var(--sub-color);
38+
}
39+
40+
input:focus, textarea:focus {
41+
outline: none;
42+
box-shadow: 0 0 0 2px var(--main-color);
43+
}
44+
45+
button {
46+
display: flex;
47+
justify-content: center;
48+
align-items: center;
49+
gap: 10px;
50+
padding: 10px;
51+
margin: 5px 0;
52+
border: none;
53+
cursor: pointer;
54+
border-radius: 10px;
55+
background-color: var(--sub-alt-color);
56+
font-family: var(--font-family);
57+
font-size: 1.2rem;
58+
color: var(--text-color);
59+
transition: var(--transition);
60+
box-shadow: 4px 6px 0px rgba(0,0,0,1);
61+
}
62+
63+
button:hover {
64+
background-color: var(--text-color);
65+
color: var(--bg-color);
66+
}
67+
68+
button:active {
69+
background-color: var(--sub-color);
70+
color: var(--bg-color);
71+
transform: translate(2px, 3px);
72+
box-shadow: 2px 3px 0px rgba(0,0,0,1);
73+
}
74+
75+
button:focus {
76+
outline: 3px solid var(--main-color);
77+
}
78+
79+
a {
80+
text-decoration: none;
81+
color: var(--main-color);
82+
}
83+
84+
#app {
85+
min-height: 100vh;
86+
}
87+
88+
.full-width {
89+
grid-column: full-width-padding;
90+
}
91+
92+
.narrow-width {
93+
grid-column: content
94+
}
95+
96+
.no-scroll {
97+
overflow: hidden;
98+
grid-row-start: content-start;
99+
}
100+
101+
.editor-theme-light {
102+
background-color: white;
103+
color: black;
104+
}
105+
106+
.editor-theme-dark {
107+
background-color: #2f343f;
108+
color: #eceff4;
109+
}
110+
111+
.editor-theme-theme {
112+
background-color: var(--bg-color);
113+
color: var(--text-color);
114+
}
115+
116+
.scroll {
117+
grid-row-start: content-start;
118+
}
119+
120+
::-webkit-scrollbar {
121+
width: 7px;
122+
}
123+
124+
::-webkit-scrollbar-thumb {
125+
background: var(--main-color);
126+
border-radius: 3.5px;
127+
}
128+
129+
::selection {
130+
background-color: var(--main-color);
131+
color: var(--bg-color);
132+
border: 3px solid var(--sub-color);
133+
}

assets/css/regular.min.css

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
/*!
2+
* Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com
3+
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
4+
* Copyright 2024 Fonticons, Inc.
5+
*/
6+
:host,:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype")}.fa-regular,.far{font-weight:400}

assets/css/solid.min.css

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
/*!
2+
* Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com
3+
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
4+
* Copyright 2024 Fonticons, Inc.
5+
*/
6+
:host,:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}.fa-solid,.fas{font-weight:900}

0 commit comments

Comments
 (0)