2025-05-11 22:19:09 +03:00
2024-05-09 16:06:43 +03:00
2025-05-11 21:55:24 +03:00
2024-05-31 00:25:30 +03:00
2025-05-11 21:55:53 +03:00
2024-05-09 11:41:22 +03:00
2024-05-09 11:41:22 +03:00
2024-05-09 11:41:22 +03:00
2024-05-16 10:03:45 +03:00
2025-05-11 22:19:09 +03:00
2024-05-11 00:59:50 +03:00
2024-05-16 10:03:45 +03:00

Echo Logo

A 2nd year Vilnius University Computer Science Course project.

A forum written in Svelte, powered by a PostgreSQL database.

Echo Demo

Video

Technical

Backend

To abstract some data and logic behind Posts and Comments, they have a shared class called "Message", which can be seen in the below diagrams. Message is a user-posted text content that can be edited, has an author, and can be liked or disliked. Hence the abstraction. The difference of Posts and Comments is that Posts can belong to categories, and Comments need a Post to reply to (plus can optionally also reply to a Comment too).

Categories allow users to filter out posts by topic.

Additionally posts are ordered by Relevancy, which is calculated based on Engagement and Time. When Engagement is measured by Like, Dislike, Comment frequency.

Passwords are hashed via argon2id.

ERD and Chem Database diagrams:

Echo ERD Diagram Echo Chen Diagram

Frontend

The front is managed by Svelte, with individual components created to be reused under the src/comp folder.

CSS is preprocessed using the svelte scss/sass preprocessor. So style code is actually of the .scss syntax.

.env file

This project runs off of an .env file (.example.env), please set it up before running the project.

Setup

First run a PostreSQL database server and update the .env file to reflect the means to connect to it.

Connect to the PostgreSQL database via pgAdmin or psql and run schema.sql, create.sql, insert.sql to create the initial data.

Run insertp2.sql for optional additional modifications, such as deletions.

To clear the database off of current data run clear.sql and to delete all created tables, functions, etc. run drop.sql.

Running

Install dependencies with npm install (or pnpm install or yarn), then start a development server:

npm run dev

# or start the server and open the app in a new browser tab
npm run dev -- --open

Media

Echo Media

Libraries

Description
A forum written in Svelte, powered by a PostgreSQL database.
Readme GPL-3.0 1.2 MiB
Languages
Svelte 41%
JavaScript 35.6%
PLpgSQL 17.7%
SCSS 3.9%
TypeScript 1%
Other 0.8%