Pantheon
所属分类:PostgreSQL
开发工具:TypeScript
文件大小:308KB
下载次数:0
上传日期:2023-04-10 22:04:31
上 传 者:
sh-1993
说明: 一个新闻聚合器,用户可以在其中发帖并参与树结构的评论系统。
(A news aggregator where users can make posts and engage in a tree structured comment system.)
文件列表:
LICENSE (1062, 2023-06-05)
backend (0, 2023-06-05)
backend\custom.d.ts (135, 2023-06-05)
backend\package.json (1637, 2023-06-05)
backend\src (0, 2023-06-05)
backend\src\account (0, 2023-06-05)
backend\src\account\account.controller.ts (1378, 2023-06-05)
backend\src\account\account.dto.ts (274, 2023-06-05)
backend\src\account\account.module.ts (441, 2023-06-05)
backend\src\app.module.ts (3076, 2023-06-05)
backend\src\bookmark (0, 2023-06-05)
backend\src\bookmark\bookmark.controller.ts (1465, 2023-06-05)
backend\src\bookmark\bookmark.dto.ts (207, 2023-06-05)
backend\src\bookmark\bookmark.entity.ts (579, 2023-06-05)
backend\src\bookmark\bookmark.module.ts (663, 2023-06-05)
backend\src\bookmark\bookmark.service.ts (3852, 2023-06-05)
backend\src\comment (0, 2023-06-05)
backend\src\comment\comment.controller.ts (2443, 2023-06-05)
backend\src\comment\comment.dto.ts (1806, 2023-06-05)
backend\src\comment\comment.entity.ts (909, 2023-06-05)
backend\src\comment\comment.module.ts (753, 2023-06-05)
backend\src\comment\comment.service.ts (7941, 2023-06-05)
backend\src\feed (0, 2023-06-05)
backend\src\feed\feed.controller.ts (1359, 2023-06-05)
backend\src\feed\feed.dto.ts (3209, 2023-06-05)
backend\src\feed\feed.module.ts (336, 2023-06-05)
backend\src\feed\feed.service.ts (3100, 2023-06-05)
backend\src\feed\feed.sql.ts (4729, 2023-06-05)
backend\src\file (0, 2023-06-05)
backend\src\file\file.controller.ts (3975, 2023-06-05)
backend\src\file\file.dto.ts (139, 2023-06-05)
backend\src\file\file.module.ts (215, 2023-06-05)
backend\src\forum (0, 2023-06-05)
backend\src\forum\forum.controller.ts (1260, 2023-06-05)
backend\src\forum\forum.dto.ts (340, 2023-06-05)
backend\src\forum\forum.entity.ts (533, 2023-06-05)
... ...
# Pantheon
A news aggregator where users can make posts and engage in a tree structured comment system.
## Feature List
* Invite only registration, users can generate up limited invite codes for other users to register
* Login system with max login attempts and account lockdown
* Hashed and salted passwords using bcrypt
* Utilizing node crypto's timingSafeEquals to prevent timing attacks
* Secure session system using cookies
* Forums designed for special interests (music, programming, etc.) each with rules and a description
* Post text, website links, or images on each forum
* Tree structured comment section for each post
* Custom algorithm for unmarshalling and marshalling an array structure into a tree
* Voting system for both posts and comments that keeps track of every user's votes (to prevent duplicate votes)
* Notification system so users can see when other users reply to their comments
* Subscription system to give each user a customized feed
* Utilizing SQL INNER JOINS to only fetch forums which the user is subscribed to
* Feed system to sort posts by relevance, age, votes, or comments for each forum or all subscribed forums
* Custom relevance algorithm implemented using Logarithms
* Paginating feed using cursor pagination for high performance sorted paging that uses the database indices
* Full text search system using PostgreSQL's built in full text search
* Uilizes GIN indicdes to improve full text search performance
* Allows for custom operators like & and | to improve search filtering
## Pending Features
* Bookmark posts and allow a user to see their own bookmarks
* Adding video upload for posts alongside images
* Real time notification system which uses web sockets
* Record a video of the entire website
* Add the database schema diagram to the gallery
* Do some benchmarks on the search system (and record a video of that)
* Deploy on a hosted website (tried DO but it was too expensive and had issues with cookies)
## What I Learned
* When to use an RDMS vs when to use a NoSql database
* How to use cursor based pagination to improve performance of paginating for feeds
* How to use ORM libraries to improve developer productivity with database access
* New frameworks: Nextjs (for frontend) and Nestjs (for backend)
* How to utilize database indices for optimizing database queries
* When to use SSR, CSR, SSG, or ISR (for nextjs)
## Gallery
![image](https://user-images.githubusercontent.com/58538077/203263772-eca151d4-bcb1-4db2-a110-c268b2087897.png)
![image](https://user-images.githubusercontent.com/58538077/203263929-b9dd1f8e-6ee1-4fbf-8526-030127cd097f.png)
![image](https://user-images.githubusercontent.com/58538077/2032***073-06c7***8e-9771-449e-9ae9-c1756c3e8aa4.png)
![image](https://user-images.githubusercontent.com/58538077/2032***253-3ad5dc95-ec5d-4cfb-b4a3-2979bad72408.png)
![image](https://user-images.githubusercontent.com/58538077/2032***343-093fff49-7e86-4f3a-828d-39cf1aca1b70.png)
![image](https://user-images.githubusercontent.com/58538077/2032***511-bd39670f-8a33-4b70-b62e-139021255c57.png)
![image](https://user-images.githubusercontent.com/58538077/2032***769-471fe444-7ee6-4af9-857f-37747a12***c5.png)
![image](https://user-images.githubusercontent.com/58538077/2032***928-c08b2413-32dc-466b-876c-db91488feeb8.png)
![image](https://user-images.githubusercontent.com/58538077/2032***9***-f77ae8b5-f114-4e0b-8b1f-8445e86e2ab3.png)
![image](https://user-images.githubusercontent.com/58538077/203265141-feabce10-31d6-4111-acda-528bd622e8f7.png)
近期下载者:
相关文件:
收藏者: