Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/nowshad-sust/subskribe

A program subscription suggester based on user interests
https://github.com/nowshad-sust/subskribe

chakra-ui docker express full-stack javascript nodejs reactjs redux redux-thun typeorm typescript

Last synced: about 1 month ago
JSON representation

A program subscription suggester based on user interests

Awesome Lists containing this project

README

        

# subskribe (under construction :construction:)

A movie and tv shows databse & subscription suggester based on user favourites.

Refereace website: https://reelgood.com/all

TODO: https://github.com/nowshad-sust/subskribe/projects

# Prerequisites

- Docker
- NodeJS

# How to run

- Clone the repository `git clone https://github.com/nowshad-sust/subskribe.git`.
- Open terminal after running `cd subskribe`.
- Start `Posgtres` and `pgadmin` by running `docker-compose up -d`.
- Now `Posgtres` and `pgadmin` should be running on port `6543` and `5555` respectedly.
- Open two seperate terminal instance inside `client` and `server folder`.
- Run `npm install` on both the instances.
- Run `npm run start:dev` on both the instances.
- The `server` should be up on http://localhost:4000.
- The `client` should be up on http://localhost:3000.

# Application Workflow
- A `node-cron` job crawls movie data every 24 hours and updates/adds to the PostgreSQL database.
- REST APIs based on Node-Express queries database using TypeORM.
- React-Redux frontnend consumes the APIs and shows the data accordingly.

# API Documentation


METHOD
ENDPOINT
DESCRIPTION


POST
/api/v1/auth/login
Logs in a user with credentials.


POST
/api/v1/auth/register
Register a new user.


PUT
/api/v1/auth/change-password
Changes password of an existing user.


GET
/api/v1/programs
Get paginated program list.


GET
/api/v1/programs/favourites
Get user's favourites list.


GET
/api/v1/programs/requests
Get all requested programs as admin.


POST
/api/v1/programs/requests
Add a new program request.


PUT
/api/v1/programs/requests/approve
Approve a pending program request.