Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
143 commits
Select commit Hold shift + click to select a range
4ab43ea
refactor(stream): Hid streaming logic inside the inner services keepi…
MohammadRstm Jan 13, 2026
0ac00ec
feat(Extractor): Removed extractor into an independent micro service.
MohammadRstm Jan 14, 2026
0b70b1c
feat(Messages): Only recieve last 10 messages user sends now for mana…
MohammadRstm Jan 14, 2026
73db116
perf(Prompt Injection Detection): Inhanced the AI's ability to detect…
MohammadRstm Jan 14, 2026
0552abf
perf(Points): Inhanced points retrieval by only including required fi…
MohammadRstm Jan 14, 2026
cce71ff
refactor(Get points): cleaned point retrieval service.
MohammadRstm Jan 14, 2026
e65234e
refactor(Ranking): Cleaned ranking module.Seperated code into single …
MohammadRstm Jan 15, 2026
b0b091b
perf(Generation plan): Added ranked schemas into the generation promp…
MohammadRstm Jan 15, 2026
1f84ce3
refactor(Validation): cleaned workflow validation files.
MohammadRstm Jan 15, 2026
e498041
perf(Ingestion): Now ingestion happens in batches significantly decre…
MohammadRstm Jan 16, 2026
a6136d7
refactor(Get points): Altered the definition of nodes for LLM calirity.
MohammadRstm Jan 16, 2026
3d59813
feat(Auth): Added login/signup pages with jwt authentication.
MohammadRstm Jan 17, 2026
0eb6072
feat(Styling): Added the css styles for the login page
MohammadRstm Jan 17, 2026
899e353
feat(Google login): Setup google accounts, now users can login via go…
MohammadRstm Jan 17, 2026
e1600b4
feat(Add interceptors): Added request interceptors to attach token, a…
MohammadRstm Jan 17, 2026
9225f43
refactor(Login): Cleaned the folder structure of the client login.tsx…
MohammadRstm Jan 17, 2026
38c3b78
refactor(Login): cleaned the login hook.
MohammadRstm Jan 17, 2026
fd4de9d
feat(Auth Controller): Created Auth service and cleaned auth controller.
MohammadRstm Jan 17, 2026
455f3ca
fix(Auth): Added auth guard for apis which was causing token invalida…
MohammadRstm Jan 17, 2026
4d429c4
feat(Profile): Added followers/following logic and displayed user pos…
MohammadRstm Jan 18, 2026
dd66dda
refactor(Profile): Seperate the main profile file into components/hooks.
MohammadRstm Jan 18, 2026
e120328
refactor(Proifle): Change the file structure of the profile page.
MohammadRstm Jan 18, 2026
742fb3c
feat(Following): Implemeted following logic ( api , hook , route) wir…
MohammadRstm Jan 18, 2026
921c7f3
feat(Follow): Added follow buttons in viewer's feed.
MohammadRstm Jan 18, 2026
17e15e8
feat(Community): Implemented the initial stage of the community page.…
MohammadRstm Jan 19, 2026
ac063c4
feat(Likes): Added the ability to like posts.
MohammadRstm Jan 19, 2026
4701435
refactor(Controllers): Cleaned the community and profile controllers.
MohammadRstm Jan 19, 2026
a9d19ec
feat(Export): Implemented post exports functionality.
MohammadRstm Jan 19, 2026
af303f3
feat(Comments): Added the required the ability to add comments and ho…
MohammadRstm Jan 20, 2026
2251c16
fix(Comment likes): Fixed comment likes not appearing as you like com…
MohammadRstm Jan 20, 2026
0ab2381
fix(Posting Comments): Fixed the route mismatch and the request autha…
MohammadRstm Jan 20, 2026
5a7d11f
feat(Posts): Added the create new post modal + its styling.
MohammadRstm Jan 20, 2026
9cb2f25
feat(Posts): Implemented the hook and api call to send form data with…
MohammadRstm Jan 20, 2026
0082566
feat(Posts): Implemented the backend endpoint to create a new post.
MohammadRstm Jan 20, 2026
6d17152
feat(About us): Implemented the original about us page and its styling.
MohammadRstm Jan 20, 2026
b6c33ce
feat(Aboutus): Added a new route in app.jsx for the page.
MohammadRstm Jan 20, 2026
59c2340
feat(Aboutus): Linked the header nav link to the new about us page.
MohammadRstm Jan 20, 2026
daf23f8
feat(Aboutus): Added the website's logo to the hero section.
MohammadRstm Jan 20, 2026
2b2320b
fix(Posts): Title and post images not appearing fixed.
MohammadRstm Jan 20, 2026
bd22c4c
feat(Adapters): Added post data adapters to be able to re-use PostCar…
MohammadRstm Jan 20, 2026
d4678ad
fix(Profile): Fixed border issues and margining issues recarding post…
MohammadRstm Jan 20, 2026
e650846
feat(Friends): Changed the structure of stats card to include a frien…
MohammadRstm Jan 20, 2026
f1b60c6
feat(Friends): Added the friends modal which appears to search for fr…
MohammadRstm Jan 20, 2026
fdb8bf8
feat(Friends): Added styling to the friends modal.
MohammadRstm Jan 20, 2026
50e2fda
feat(Friends): Implemented friends search's endpoint + service.
MohammadRstm Jan 20, 2026
128ee42
feat(api): Added the get friends search route.
MohammadRstm Jan 20, 2026
13e39a7
feat(friends): Implemented the hook and api call to fetch search frie…
MohammadRstm Jan 20, 2026
55ee05f
feat(friends): Linked the hook to the search input.
MohammadRstm Jan 20, 2026
1acba70
fix(api): Corrected the api route mismatch.
MohammadRstm Jan 20, 2026
54d3307
fix(Friends modal): Fixed the styling issues in the friends modal now…
MohammadRstm Jan 20, 2026
3ccf941
fix(Profile): Fixed logic issue in veiwing other user's profile.
MohammadRstm Jan 20, 2026
d1818a2
fix(api): fixed api route missmatch for toggle follow.
MohammadRstm Jan 20, 2026
a9884e1
fix(Folllowing): Fixed unfollowing logic, route missmatches, and call…
MohammadRstm Jan 20, 2026
e3a368e
feat(following): Added live UI changes on follow and unfollow.
MohammadRstm Jan 20, 2026
a295e94
fix(Following): Following list was not being returned fixed.
MohammadRstm Jan 20, 2026
bcb6602
feat(Following): Removed follow back button inside following list modal.
MohammadRstm Jan 20, 2026
b31fcd6
feat(Following): Only followers can view workflow history of their fo…
MohammadRstm Jan 20, 2026
8014fba
feat(Avatar): Impelemted the hook and api call to chagne avatar.
MohammadRstm Jan 20, 2026
700e027
feat(Avatar): Updated the avatar ui to include upload button.
MohammadRstm Jan 20, 2026
9d7f66d
feat(Avatar): Linked upload hooks to the backend endpoints.
MohammadRstm Jan 20, 2026
9d77298
feat(Settings): Created the tsx file for settings page(minimal).
MohammadRstm Jan 21, 2026
b89fa2f
feat(Settings): Crated the css styles for settings page.
MohammadRstm Jan 21, 2026
e6137ba
feat(Settings): Linked Settings page in app.jsx
MohammadRstm Jan 21, 2026
9d6b246
feat(Settings): Linked logout button to auth context now users can lo…
MohammadRstm Jan 21, 2026
de1df2f
feat(Settings): Created the endpoint which tells us if the user's acc…
MohammadRstm Jan 21, 2026
17d3ded
feat(api call): Implemented the api call to retrieve account type.
MohammadRstm Jan 21, 2026
b288081
feat(hook):Created the hook to call api call.
MohammadRstm Jan 21, 2026
0696ddc
feat(Settings): Changed the folder structure of Settings page to incl…
MohammadRstm Jan 21, 2026
18c1449
feat(Set password): Implemented the set password endpoint.
MohammadRstm Jan 21, 2026
ab7cb85
feat(Goolge account): Implemented the ednpoint that unlinks user's go…
MohammadRstm Jan 21, 2026
d216aa6
feat(N8n account): Implemented the endpoint that user's links n8n acc…
MohammadRstm Jan 21, 2026
eaa9388
feat(N8n account): Did the migration to add n8n credentials to users …
MohammadRstm Jan 21, 2026
297f0b3
feat(Settings): Linked api calls with hooks with the actual server.
MohammadRstm Jan 21, 2026
63f3f40
feat(Settings): Wired up the hooks to the setttings page, fixed a min…
MohammadRstm Jan 21, 2026
4776834
fix(api): fixed route/method missmatches between server and client fo…
MohammadRstm Jan 21, 2026
49bc237
fix(Avatar): Fixed avatar not appearing due to path missmatch.
MohammadRstm Jan 21, 2026
274b5a8
feature(Me): Now me route sends the photo url so it appears in the he…
MohammadRstm Jan 21, 2026
34ef4f8
fix(Login): Fixed styling issues in login page.
MohammadRstm Jan 21, 2026
99e7c5b
fix(Signup): Fixed the styling of the signup page.
MohammadRstm Jan 21, 2026
cbeeb55
feat(Landing): Fixed the styling in the landing page.
MohammadRstm Jan 21, 2026
34b786a
feat(Logo): Fixed website's logo in header.
MohammadRstm Jan 21, 2026
5c271e6
feat(Icon): Created the tab icon for the website.
MohammadRstm Jan 21, 2026
fb89a0d
refactor(Linting): Removed linting and tack stack error markers in se…
MohammadRstm Jan 21, 2026
24ec782
refactor(Linting): Fixed linting and tack stack issues in profile pag…
MohammadRstm Jan 21, 2026
9ebee53
refactor(Linting): Corrected the linting issue in protected routes co…
MohammadRstm Jan 21, 2026
b33de96
refactor(Linting): Fixed tackStack and linting issues in profile page.
MohammadRstm Jan 21, 2026
7d29744
refactor(Linting): Removed last linting error in adapters.
MohammadRstm Jan 21, 2026
0b883a8
refactor(Emogis): Replaced emogis by lucide-react icons.
MohammadRstm Jan 21, 2026
2552f0b
refactor(Signup): Cleaned state usage in signup form.
MohammadRstm Jan 21, 2026
c56a526
feat(ZOD): Added ZOD + hook RHF validation for signup form.
MohammadRstm Jan 21, 2026
915c86c
fix(Signup): Fixed the styling of the signup page to accomidate for t…
MohammadRstm Jan 21, 2026
c7d205d
feat(Toast): Added a toast component + context to share it gloably, n…
MohammadRstm Jan 21, 2026
37ddef1
feat(Exception): Created a new Exception handler that handels user fr…
MohammadRstm Jan 21, 2026
03dc7ad
chore(Bootstrap): I edited the bootstrap exception handling configura…
MohammadRstm Jan 21, 2026
43260a7
feat(Error handling): Implemented error handling in frontend.
MohammadRstm Jan 21, 2026
7bfddf4
refactor(api): unified error handling in one file.
MohammadRstm Jan 21, 2026
7b96ace
feat(Toast): Added enum typing for message type.
MohammadRstm Jan 21, 2026
17fe319
refactor(QueryClient): Implemented custom query cleint object in lin …
MohammadRstm Jan 21, 2026
3d57887
refactor(Hooks): Cleand all hooks in settings/Profile and signup pages.
MohammadRstm Jan 21, 2026
e7fddf3
refactor(Login): Seperated hook calls into seperate hook files.
MohammadRstm Jan 21, 2026
26ed5a5
refactor(Signup): Moved all files related to the signup page have bee…
MohammadRstm Jan 21, 2026
175dde9
refactor(Settings): Centralized all settings file into Settings folder.
MohammadRstm Jan 21, 2026
781de6f
refactor(Profile): Centralized profile components.
MohammadRstm Jan 21, 2026
a5e8f6e
refactor(Login): Centralized login components.
MohammadRstm Jan 21, 2026
f73a8a5
refactor(Community): Centralized community components.
MohammadRstm Jan 21, 2026
56b66c2
refactor(Community): Moved adapters to main folder.
MohammadRstm Jan 21, 2026
4be511f
feat(Community): Created a loading state for community posts and fixe…
MohammadRstm Jan 22, 2026
eeed22e
fix(Community): Fixed avatar not appearing in comment section.
MohammadRstm Jan 22, 2026
41ff50a
fix(Styling): minor adjustments to skeleton loading.
MohammadRstm Jan 22, 2026
5a469aa
refactor(Client): Deleted some unessesary files.
MohammadRstm Jan 22, 2026
5f741ad
refactor(AuthController): Removed try catch from methods as its handl…
MohammadRstm Jan 22, 2026
2cec80f
refactor(CommunityController): Removed try-catch in methods.
MohammadRstm Jan 22, 2026
20103e4
refactor(UserController): Removed try-catch blocks from methods.
MohammadRstm Jan 22, 2026
8ed84f5
refactor(Auth): Cleaned Auth services file.
MohammadRstm Jan 22, 2026
a24f510
refactor(routes): Moved routes from community controller calling to u…
MohammadRstm Jan 22, 2026
7ec17bb
refactor(PostCommentsController): moved all routes related to comment…
MohammadRstm Jan 22, 2026
aa028d0
refactor(Post Comments): Cleaned post comment service.
MohammadRstm Jan 22, 2026
22796f8
refactor(UserPost): cleaned user post services and controllers.
MohammadRstm Jan 22, 2026
079ac8a
refactor(Requests): Removed unecessar validation requests.
MohammadRstm Jan 22, 2026
ead433d
refactor(Policies): Removed unecessary policies folder.
MohammadRstm Jan 22, 2026
809869f
chores(.env.example): Updated example file.
MohammadRstm Jan 22, 2026
7ab538d
chores(.env.example): Added comments for clarification in example env…
MohammadRstm Jan 22, 2026
4b8ac49
refactor(Ranking): Polished ranking schemas to be deterministic and s…
MohammadRstm Jan 23, 2026
50448cf
(Merge): Merged conflicts betweed dev and refactor/Server-copilot)
MohammadRstm Jan 23, 2026
a1f89b2
fix(Copilot): Fixed wiring after merge is completed.
MohammadRstm Jan 23, 2026
7b3e0e0
refactor(Copilot): used hooks for copilot calls and changed the loca…
MohammadRstm Jan 23, 2026
1a963b5
fix(Prompts): Loosened the prompt injection prompt.
MohammadRstm Jan 23, 2026
8553b11
refactor(Server): Removed unecessary files in the backend.
MohammadRstm Jan 24, 2026
943102f
feat(Docker): Built the docker file for frontend production using ngi…
MohammadRstm Jan 24, 2026
166773f
chores(Conf): Created the nginx config required to run nginx.
MohammadRstm Jan 24, 2026
4c47605
chores(Docker): Created the DockerFile for the backend.
MohammadRstm Jan 24, 2026
d7884ee
chores(Docker): Create the docker-copose.yml to run both frontend and…
MohammadRstm Jan 24, 2026
5b46927
chores(NGNIX): Serverd both front and backend services in a common ng…
MohammadRstm Jan 24, 2026
1d64b07
fix(Docker): Fixed missconfiguration for file/folder naming in docker…
MohammadRstm Jan 24, 2026
41df25d
fix(Toast): Fixed minor import issues related to toast files in front…
MohammadRstm Jan 24, 2026
71d3a26
chores(CI/CD): Created the initial CI CD workflows.
MohammadRstm Jan 24, 2026
2087d9f
fix(Trait): Fixed trait file name
MohammadRstm Jan 24, 2026
d4ef4b8
refactor(Copilot): Updated qdrant url to be compatable for deploying.
MohammadRstm Jan 24, 2026
20f1440
docs(README): Added the initial shape of the readme file as well as …
MohammadRstm Jan 24, 2026
236ee7e
fix(Migration): Added nullables for user_posts incase user doesn't in…
MohammadRstm Jan 24, 2026
b9ca3d2
fix(Auth): Fixed uris missmatch after changing to using docker, now l…
MohammadRstm Jan 24, 2026
67c76c1
fix(CD): Removed cd file untill initial deployment is finished.
MohammadRstm Jan 24, 2026
2a90832
chores(Docker): Tightened docker configurations to make it ready for …
MohammadRstm Jan 24, 2026
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
35 changes: 35 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: CI

on:
push:
branches:
- main
pull_request:
branches:
- main

jobs:
build-test:
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Set up Node
uses: actions/setup-node@v4
with:
node-version: '20'

- name: Install frontend deps
working-directory: ./client
run: npm install

- name: Set up PHP
uses: shivammathur/setup-php@v2
with:
php-version: '8.2'

- name: Install backend deps
working-directory: ./server
run: composer install --no-interaction
122 changes: 121 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,121 @@
FLOWPILOT - YOUR N8N GENERATOR
<h1 align="center"><strong>FlowPilot</strong></h1>

<p align="center">
<img src="https://your-domain.com/path-to-logo.png" alt="Copilot Logo" width="160" />
</p>

<p>
<strong>
Flowpilot is a one of a kind n8n workflow generator.Generation of production ready, deployable and testable workflows is what Flowpilot strives in.
</strong>
</p>

<h2 align="center"><strong>Architecture</strong></h2>

<table align="center">
<tr>
<td align="center" width="50%">
<img
src="https://upload.wikimedia.org/wikipedia/commons/a/a7/React-icon.svg"
alt="React Logo"
width="120"
/>
<p><strong>Frontend</strong></p>
<p>React</p>
</td>
<td align="center" width="50%">
<img
src="https://upload.wikimedia.org/wikipedia/commons/9/9a/Laravel.svg"
alt="Laravel Logo"
width="120"
/>
<p><strong>Backend</strong></p>
<p>Laravel</p>
</td>
</tr>
</table>
<h3 align="center"><strong>Communication Flow</strong></h3>

<p align="center">
<img
src="./docs/communication-flow.png"
alt="FlowPilot Communication Flow Diagram"
width="800"
/>
</p>

<p align="center">
<em>
High-level data flow between the frontend, backend and database.
</em>
</p>

<p align="center">
<img
src="./docs/communication-flow.png"
alt="FlowPilot Communication Flow Diagram"
width="800"
/>
</p>

<p align="center">
<em>
n8n Generation workflow between the frontend, backend, generation module, LLM, vector-db and an open SSE connection.
</em>
</p>


<h2 align="center"><strong>System Design</strong></h2>


<h3>Sequence Diagram</h3>
<table align="center">
<tr>
<td align="center" width="50%">
<img
src="https://upload.wikimedia.org/wikipedia/commons/a/a7/React-icon.svg"
alt="React Logo"
width="120"
/>
<p><strong>Frontend</strong></p>
<p>React</p>
</td>
<td align="center" width="50%">
<img
src="https://upload.wikimedia.org/wikipedia/commons/9/9a/Laravel.svg"
alt="Laravel Logo"
width="120"
/>
<p><strong>Backend</strong></p>
<p>Laravel</p>
</td>
</tr>
<tr>
<td align="center" width="50%">
<img
src="https://upload.wikimedia.org/wikipedia/commons/a/a7/React-icon.svg"
alt="React Logo"
width="120"
/>
<p><strong>Frontend</strong></p>
<p>React</p>
</td>
<td align="center" width="50%">
<img
src="https://upload.wikimedia.org/wikipedia/commons/9/9a/Laravel.svg"
alt="Laravel Logo"
width="120"
/>
<p><strong>Backend</strong></p>
<p>Laravel</p>
</td>
</tr>
</table>
<h3>ER Diagram</h3>
<p align="center">
<img
src="./docs/communication-flow.png"
alt="FlowPilot Communication Flow Diagram"
width="800"
/>
</p>
15 changes: 15 additions & 0 deletions client/.env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# The url to the current server version
VITE_BASE_URL=http://********

# Used for "continue with google" -> login/signing up using a google account
# handles user authentication for us
# create a google cloud account and then create a client with the url being your frontend url (js)
VITE_GOOGLE_CLIENT_ID=*******************.apps.googleusercontent.com

# Same as base url but is compatable with the way we save file paths in DB
# Its still pointing to the server but change it according to how you save your paths
VITE_PHOTO_BASE_URL=http://*********

# Specifies how strong user's password must be to be able to signup
# using zod the scale is set from 1 - 4 where 1 is the weaked and 4 the strongest
VITE_PASSWORD_THRESHOLD=**
2 changes: 1 addition & 1 deletion client/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ yarn-error.log*
pnpm-debug.log*
lerna-debug.log*

node_modules
node_modules/
dist
dist-ssr
*.local
Expand Down
13 changes: 13 additions & 0 deletions client/DockerFile
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
FROM node:20-alpine as build

WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build

FROM nginx:alpine
COPY --from=build /app/dist /usr/share/nginx/html
COPY nginx.conf /etc/nginx/conf.d/default.conf
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
5 changes: 3 additions & 2 deletions client/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,13 @@
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
<link rel="icon" type="image/svg+xml" href="./src/assets/favIcon.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>client</title>
<title>FlowPilot</title>
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/main.tsx"></script>
<script src="https://accounts.google.com/gsi/client" async defer></script>
</body>
</html>
18 changes: 18 additions & 0 deletions client/nginx.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
server {
listen 80;
server_name _;

# React static files
root /usr/share/nginx/html;
index index.html;

# Serve static files normally
location / {
try_files $uri $uri/ /index.html;
}

# API proxy to Laravel
location /api/ {
proxy_pass http://backend_nginx:80;
}
}
Loading