npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

algorithm-lovers

v0.2.1

Published

Social network for algorithm lovers

Downloads

160

Readme

Algorithm Lovers

A web platform to share and discuss algorithms.

license Build Status codecov npm Github Pages

Overview

Studying computer science invariably involves delving into algorithms. When I initially encountered concepts like greedy, divide and conquer, and dynamic programming, I found them challenging. However, I gradually developed a fascination for them. This interest grew particularly when I began incorporating these algorithms into my own projects, where the synergy between theory and practice fueled my enthusiasm.

Now, as a participant in competitive programming, I have developed novel algorithms in response to unique problems encountered during contests. Consequently, I have decided to build a web platform with two main objectives:

  1. To share the algorithms I've developed, aiming to reach others with a passion for algorithms.
  2. To establish a community for discussions about algorithms, encouraging the sharing of insights and opinions.

Instruction to run the program

Install Node.js

Node.js

Add a default.json file in config folder with the following

{
  "mongoURI": "<your_mongoDB_Atlas_uri_with_credentials>",
  "jwtSecret": "secret"
}

Install server dependencies

npm install

Install client dependencies

cd client
npm install

Create .env file to set environment variables

cd client
touch .env
echo "SKIP_PREFLIGHT_CHECK=true" >> .env

Run the web platform locally from root

npm run dev

Examples of how to use the application

Examples of API usage can be found in the static website, which includes specific instructions for usage.

After you run the web platform locally, the web application will launch on your localhost:3000. It is very similar to the usual social network, with features such as registration, login, browsing, posting, etc.

Home Page: Application home page that allows users to register, log in, or browse published content by clicking the relevant button in the upper right conrner.

Sign Up Page: The user registration page, where users can create a new account.

Create Profile Page: The profile creation page, where users can input and update their personal information, education, and work experience.

Sign In Page: The login page, where users can enter their credentials to access their account.

Dashboard Page: The main dashboard, where users can view an overview of their profile, posts, and other relevant information.

Post Page: A single post page, users can create a post here.

Published content Page: A page showing a list of all posts in the application, allowing users to browse and interact with them.

Functionalites and APIs

CREATE

  • api/auth: Register a new user or authenticate an existing user.
  • api/posts: Create a new post.
  • api/posts/comment/:id: Add a comment to a post.
  • api/profile: Create a user profile.
  • api/users: Register a new user.

READ

  • api/auth: Authenticate a user and return their information.
  • api/profile/me: Retrieve the current user's profile.
  • api/posts: Retrieve a single post by its ID.
  • api/posts/:id: Retrieve a single post by its ID.
  • api/profile: Retrieve all user profiles.
  • api/profile/user/:user_id: Retrieve a specific user profile by its user ID.

UPDATE

  • api/posts/like/:id: Like a post.
  • api/posts/unlike/:id: Unlike a post.
  • api/profile/experience: Add or update work experience in a user's profile.
  • api/profile/education: Add or update education in a user's profile.

DELETE

  • api/posts/:id: Delete a post by its ID.
  • /comment/:id/:comment_id: Delete a comment from a post.
  • api/profile: Delete the current user's profile.
  • api/profile/experience/:exp_id: Delete a specific work experience from a user's profile.
  • api/profile/education/:edu_id: Delete a specific education entry from a user's profile.

Contribute

Please see CONTRIBUTING