Git Product home page Git Product logo

feednext's Introduction

No longer maintained

Brand Logo

Closed Issues License Extra Info

What is this all About ?

feednext.io is an open source social media platform of the Feednext organization, founded by Software Engineer Onur Ozkan. The main purpose of the project is to inform people around the world about any physical or a virtual object from a single central source. Like a phone model, TV, Computer components or a Song even. I believe by doing that with the best way, this platform will turn into a central system of information distribution about product reviewing around the world.


Installation

Requirements

Technology Version
Docker *
Docker Compose *
Make *
Node LTS

API

After you have forked and cloned this repository to your machine, cd into project folder and then create .env files from .env.example ones with following command:

cp .env.example .env && cp ./server/.env.example ./server/.env

Once .env files are created successfully, now you can run the api on your local by running following command:

make dev

With the command above, api will start running on http://localhost

WARNING (For Osx & Windows Users)

The way of Docker (Linux containers) works on non-linux machines are pretty messy. With feednext, we have whole project folder passed into linux containers synchronously which works crystal clear on Linux machines. But, on non-linux machines it enforces your machine's drive pretty hard. For non-linux users, we have an alternative development way, instead of passing project folder, we will only use mongo and redis as containers and then will start api manually below the server directory.

Start mongo and redis containers:

make dev2

cd into server directory, and update the following values in .env file:

DB_HOST=localhost:27017
REDIS_HOST=localhost

Install dependencies:

npm ci

Run API:

npm run start:dev

Right after the command above, api will start running on http://localhost:3000

Import DB Dump

In the project root, run the following command to import/restore db dumps:

make import_db_dumps

In development mode, you can not create user accounts because of the sign-up mechanism of Feednext. Instead of creating accounts, you can sign in with already created demo accounts. The account credentials are as in the following table:

Username Email Password Role
admin [email protected] admin123 5
jacky_eirl [email protected] demo123 0
jens.auhrk [email protected] demo123 0
teo.alpha [email protected] demo123 0
saul.kuvarsk [email protected] demo123 0
onur.ozkan [email protected] demo123 0

FRONTEND

cd into client directory and then:

Install dependencies:

npm ci

Run Frontend:

npm run start:dev

If you follow the Osx & Windows way for running API, then apply following changes in config/constants.ts:

'http://localhost/api' TO 'http://localhost:3000/api'
'http://localhost' TO 'http://localhost:4001'

Tech Stack

Core

API

Web Frontend


API Documentation

API documentation is automatically generated by Swagger on development mode at /api endpoint.

See hosted documentation here


Contributing

Technically, feednext.io is performance oriented application which is developed with Software Patterns & Design Principles using modern technologies all around it. PRs are welcome as long as they are fits in the principles, structure of the feednext.io.

Please do not directly PR to 'master' branch, instead go for 'dev' branch.

Styleguilde

Commit Messages

  • If you have changed things below the server or client directories, commit messages must have [server] or [client] prefix.
  • Commit messages should never include emojies
  • Commit messages must be imperative like "Add stuff" not "Added stuff"

Coding

  • Do not break the eslint rules.

feednext's People

Contributors

dependabot[bot] avatar onur-ozkan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

feednext's Issues

Cannot run the client

I got this error when running npm run start:dev. I already install via npm ci.
image

I use node v12.22.12

Auto-role upgrade system

Create an algorithm that automatically upgrades(up to Mid Level Author) the user role based on the user's statistics.

Categories on prod

Categories that will be on the production

  • Electronic
  • Games & Game Consoles
  • Appliances
  • Baby
  • Vehicles
  • Books
  • Musics & Songs
  • Pet Supplies
  • Musical Instruments
  • Fashion
  • Sports & Outdoors
  • Industrial & Scientific
  • Automotive
  • Collectibles & Fine Art
  • Home, Life & Furniture
  • Patio, Lawn & Garden
  • Arts, Crafts & Sewing
  • Beverage & Food
  • Health & Household
  • Beauty & Cosmetics

Create documentation

Create a documentation including following informations

  • Running project on local
  • API endpoints
  • Project Structure
  • Todo list
  • Contributing to project

[client] Splash Sign-in Modal

Create a component that pops on middle of the screen when user triggers click event on some buttons like voting, rating, etc..

job queue mechanism

In case of overload, put the jobs that overloads the server's power into queue mechanism via RabbitMQ.

Nginx Error Logs

Push error logs into some accessable channel services such as slack or discord

[client] Transform frontend framework to NextJS from Umi

Frontend framework will be transform to NextJS.

The problems that caused to this refactorization:

  • There is a huge documentation problems with Umi. Almost all official documentations are Chinese.
  • %90 of the issues are Chinese and English ones does not get response in time. And responses are does not fix the issues really.
  • Not enough contributors. Available ones are not experienced as expected.

Skim code review points

Hey there,

I just skimmed through most of the code because I wanted to see if there was any inspiration for a project of mine.

I found the following points which might be interesting to you. Keep in mind that it was a very rough skim, so it's very possible i might have missed things.

  • You are using JWTs for sessions (which I would not recommend) and using a Redis-backed blacklist for invalidated tokens. The Redis instance is (at least as far as I can tell) not started with correct persistence enabled. This means if Redis crashes all keys that got invalidated in the last 60 seconds are now valid again.
  • Your types for Redis are set(key: string, value: any) when Redis can only handle value: string correctly
  • Your rate limiting is setup to use in-memory storage, but you are running your processes clustered, so they don't share the same rate limit values. You should move that limit information into Redis, for example.
  • You are hashing the password with sha256 which is vulnerable to a rainbow table attack. Please read this article on how to implement password storage safely.
  • Your password length is limited to a max of 20 characters, when you should not limit it at all (or to something like 4k).
  • You are saving password reset tokens as plaintext in the DB when they should be hashed

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.