Syncave

Web app to easily share, sync and collect information with others

Motivation

  • Learning FastAPI, Svelte and everything involved in developing and deploying a web app.
  • Having the ability to make my ideas a reality.

Tech Stack

  • JavaScript + Svelte in the frontend
  • FastAPI (with Python) in the backend
  • Supabase (Postgres) as the database
  • Cypress and pytest for testing
  • Deployed on Netlify and AWS EC2

Features

Application

  • Access space with (predefined) keys or directly through url
  • Create notes and save in DB
  • Load and display notes
  • Notification toasts
  • Basic UI
  • Dark mode
  • Delete note
  • Create Cave
  • Feedback button
  • Copy note text

    Deployment

  • E2E tests
  • Unit tests
  • Svelte app deployed on netlify
  • Dockerized backend
  • FastAPI app deployed on a AWS t2.micro EC2 instance
  • Custom domain for frontend and backend

Next steps

  • Fix E2E tests (some broke)
  • Auto-deploy (CD) to Netlify and AWS on push
  • Fixing bugs

Potential further steps

  • "Last used caves" on login screen
  • Clean refreshing of notes after creating / deleting
  • Making links clickable, QR code for cave key
  • Checkboxes for deleting multiple notes
  • Redesign of UI
  • Proper implementation of dark mode
  • Info text for users
  • Auto-testing (CI) on push
  • encrypting data

Discovered bugs

  • Feedback button doesn't stay fixed on the bottom
  • Dark mode setting resetted when refreshing / redirecting page
  • Page not accessible without 'www.'

Timeline

  • Sept 20 to 23, 2022: Started the project
  • Sept 24, 2022: Created repository and upload on GitHub
  • Oct 19, 2022: Added delete note and create cave functionality
  • Oct 21, 2022: Added feedback button
  • Oct 22, 2022: Implemented E2E tests
  • Oct 23 to 26, 2022:
    • Tried continuous integration with E2E and unit tests using Github Actions but wasn't succesful (see deployment branch)
    • Wrote basic unit tests
  • Oct 27 to 29, 2022:
    • Deployment of svelte app on Netlify
    • Dockerization and deployment of backend on a AWS t2.micro EC2 instance (Ubuntu)
    • Setting up custom domain for frontend (www.syncave.com) and backend (api.syncave.com)
    • Tried setting up HTTPS for backend with certbot but wasn't successful yet
  • Oct 30, 2022:
    • Improved color scheme in web app
    • Unified designs of buttons
    • Many small improvements in web app.
  • Oct 31, 2022:
    • Implemented copy note text button
  • Apr 16, 2023:
    • Added SSL certificate for backend and frontend
    • all connections are now HTTPS secured

Database Schema

Screenshots

E2E tests

https://user-images.githubusercontent.com/100248269/197353113-d547f76f-492b-4a07-977a-12eb0a3d1046.mp4

updated: Apr 16, 2023

Top categories

svelte logo

Want a Svelte site built?

Hire a Svelte developer
Loading Svelte Themes