Skip to content

ArtiLinks - Bookmark Manager that helps categorize and save bookmarks. Fullstack project created using NextJS

Notifications You must be signed in to change notification settings

Vladislav0Art/ArtiLinks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ArtiLinks Logo

ArtiLinks - Bookmark Manager

Read this in other languages: Русский, English.

Project idea:


The application solves the problem of storing & categorizing links to useful online-services.

Deployment here.

Implemented functionality:


  1. Registration with email confirmation & Authorization
  2. Password recovery via email
  3. Categorization of links (groups & collections):
    • Group is a container that stores a set of collections
    • Collection is a container that stores the links
    • Example: Programming is a group, Javascript is a collection
  4. Full-fledged CRUD API for the groups & collections
  5. Ability to change a group of a created collection
  6. Automatic data scraping of resources:
    • Retrieving favicons, titles, descriptions, and domain names
  7. Links searching functionality within the considered collection:
    • Search is made by the link title & the resource domain
  8. Error notifications

Used technologies:


Technology Description
NextJS React server-side rendering framework
jsonwebtoken User Registration & Authentication
nodemailer Email confirmation & Password recovery
MongoDB/Mongoose Cloud-based database
axios API requests of client & server sides
open-graph-scraper Data scraping of resources
react-transition-group Animations of rendered components

Difficulties encountered & Interesting task:


The most time consuming and interesting part was developing the JWT authentication/registration. This approach was new to me, so I had to spend a lot of time searching for information about how to write such functionality correctly. In the end, I implemented a separate service class to handle refresh/access-tokens. The main problem was access-token update in the case when user sent a request to the API-protected route, being authenticated, but having an already expired access-token. I found out that the axios library supports interceptor functionality, which have solved my problem. With an expired access-token, my server returns a 401 authorization error, in the interceptor response from the server I catch this type of error, send a request to update the tokens, and then try to repeat the original request.

Screenshots and videos:


Youtube video with functionality demonstration:

Main page screen:

Landing Page Main Screen
Landing Page Scrolling

Registration & Login:

Registration Screen Login Screen

Password Recovering:

Password Recovering Screen

Error Notifications:

Error Notification Screen

Dashboard View:

Dashboard Screen
Functionality Demonstration

Bookmark Editing:

Bookmark Editing Screen

Collection Creation:

Collection Creation Screen

Available Dialogs:

Available Dialogs

About

ArtiLinks - Bookmark Manager that helps categorize and save bookmarks. Fullstack project created using NextJS

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published