Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/iwatanikenji/ignews
Subscription based application with Next.js, Prismic CMS, Stripe and FaunaDB
https://github.com/iwatanikenji/ignews
css-modules faunadb jam-stack jest next-auth nextjs prismic sass ssr stripe-api vercel
Last synced: 12 days ago
JSON representation
Subscription based application with Next.js, Prismic CMS, Stripe and FaunaDB
- Host: GitHub
- URL: https://github.com/iwatanikenji/ignews
- Owner: iwataniKenji
- Created: 2022-03-21T20:34:15.000Z (almost 3 years ago)
- Default Branch: master
- Last Pushed: 2022-05-29T20:28:04.000Z (over 2 years ago)
- Last Synced: 2025-01-18T12:15:38.819Z (12 days ago)
- Topics: css-modules, faunadb, jam-stack, jest, next-auth, nextjs, prismic, sass, ssr, stripe-api, vercel
- Language: TypeScript
- Homepage: https://ignews-kenji.vercel.app/
- Size: 5.44 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Summary
📙 About
🖼️ Preview
📖 How to Start
💡 Features
💻 Technologies
✔️ Ig.news project finished ✔️📙 About
Ig.news is a serverless website based on Next.js framework usage and has an authentication functionality that allows the user to get access to written content about the ReactJS world if he is logged in or a preview of the original content if he's not.
The access is allowed trough a payed monthly subscription and the authentication uses Github to get the user's basic information.
In conclusion, this application was used to implement and learn unit testing basic concepts and tips on how to set Vercel config and environment variables settings.
This project is originally created on Ignite from Rocketseat
and made by Kenji Iwatani
Check website →
---
🖼️ Preview
Project overview:
Tests coverage report:
---
📖 How to Start
Starting this repository:
```bash
# Clone this repository
$ git clone https://github.com/iwataniKenji/ignews# Access the project directory
$ cd ignews
```Creating and setting the project:
It's required an account on Stripe (for payment system), Fauna (for database functionality), and Prismic (to create publications of the website).
```bash
# Install dependencies
$ yarn# On ".env.example" file, fill the environment variables according to the instructions provided
$# Rename the config file
$ ren ".env.example" ".env.local"# Execute stripe to listen the events from webhooks
$ stripe listen --forward-to localhost:3000/api/webhooks# Initialize and open local host
$ yarn dev
```Running tests:
```bash
# Run tests
$ yarn test
```---
💡 Features
- [x] Static website with SSG
- [x] Github authentication
- [x] Subscription and payment system using Stripe
- [x] Redirect when not authenticated
- [x] Validation of active subscriptions
- [x] Prevents duplicated customers accounts
- [x] Posts preview functionality for non-subscribed users
- [x] Backend independent (serverless website)
- [x] Unit tests implemented and covering most of the application---
💻 Technologies
- [x] Next.js
- [x] React
- [x] Typescript
- [x] SASS
- [x] CSS Modules
- [x] Prismic CMS
- [x] Stripe
- [x] FaunaDB
- [x] JAMStack
- [x] Jest
- [x] Vercel