Skip to content

A virtual multi-media scrapbook generator for treasured memories.

Notifications You must be signed in to change notification settings

afrah-ali/memoria

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

117 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🕰️ Memoria

A virtual multi-media scrapbook generator for treasured memories. Add images, songs, maps and more!

Contributers

Afrah Ali, Ruwani De Alwis

🖌️ Features

  • Supports user account creation and management
  • Allows users to create new scrapbooks and create virtual collages to add to them
  • Users can:
    • Upload images
    • Add image captions and other text
    • Attach songs from Spotify
    • Pin locations using Google Maps)
  • Memoria stylizes user input to create and display their collage page

Gallery

landing sign up add new sbs 0 image captions music rome image

Memoria v1.0

The first release of Memoria has been published to our Docker Hub registry. This is where all future releases will be published, in sync with the release branch of this repository.

Software Documentation

Installation & Deployment

  • Deployment will be done using docker (a requirement to run the application)
  • Navigate to the /app directory within the application
  • Run docker-compose build, this will generate an executable of the Go application
  • Run docker-compose up -d postgres, this will start the postgres db in the background
  • Run docker-compose up app migrate
  • Create an account and get started!

🎨 Design System

View the documentation of our Design System here.

🛠 Tools

  • Client-side: HTML, CSS/SASS
  • Server-side: Gin (Go)
  • Database: Postgres
  • Internal API: REST
  • External APIs: Google Maps, Spotify

Migrations

  • the postgres DB has been versioned and migration files have been created and run through go-migrate
  • To run a db migration on its own docker-compose up migrate
    • this will read the migrations/ file in the folder and build a new version of the system (if changes have been present)
  • As the migrations were not generated through GORM (typeORM used), a change to the model requires changes in both the appropriate files in the migrations/ folder and the structures in models/ folder

CI/CD

  • Our DevOps pipeline is hosted on GitHub Actions where we build and test our code before integration. For release versions, we tag, build and publish Docker images of Memoria to our registry.

Testing

  • Unit testing for CRUD and API handlers are done through our test suite and automatically run as part of our CI pipeline. Tests can be run manually with go test from the app/test directory.

Feature Development

1. Models

  • Data models for Memoria exist in the app/models directory and are represented as go structs. This is where application entities can be extended for further feature development.

2. Controllers

  • User-to-model interaction is handled by the controllers in app/controllers, which handle database CRUD operations as well as hit external API endpoints of Google Maps and Spotify for user requests.
  • Routes and handlers are defined in controllers/routes.go, which can be extended to support new requests and connect to external APIs.

3. Views

  • Views are created with HTML5, CSS and Javascript in app/views and are routed through handlers.

About

A virtual multi-media scrapbook generator for treasured memories.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published