Skip to content

thejoltjoker/extreme-news

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Review Assignment Due Date

🩻


Extreme News

A magazine for the latest extreme sports news

Tech StackHow To UseCreditsLicense

Tech stack

Frontend

  • Angular
  • TypeScript
  • Tailwind CSS
  • Zod
  • Jasmine & Karma

Backend

  • Node.js
  • Express
  • TypeScript
  • Prisma ORM
  • PostgreSQL
  • Zod
  • Jest

DevOps

  • GitHub Actions
  • Docker

Other

  • Figma
  • GitHub Projects
  • Miro

How To Use

These steps assume that you have Node v.20, Stripe CLI and Docker installed.

  1. Clone the repo
    • git clone https://github.com/Medieinstitutet/uppgift-3-super-awesome-mega-team.git
  2. Navigate to project root
    • cd uppgift-3-super-awesome-mega-team
  3. Run postgreSQL in docker
    • docker compose -p postgres up -d
  4. Start server in a separate terminal window. Follow instructions below.
  5. Start stripe listener in a separate terminal window. Follow instructions below.
  6. Start client. Follow instructions below.
  7. Go to localhost:4200 to view website.

Server

  1. Navigate to server directory
    • cd server
  2. Install dependencies
    • npm install
  3. Add .env file, see example in /server/.env.example
  4. Migrate and seed database
    • npm run db:reset
  5. Start server
    • npm run dev
  6. Optional: Run npx prisma studio to open Prisma database interface.

Stripe

  1. Login to stripe cli
    • stripe login
  2. Start stripe listener
    • stripe listen --forward-to localhost:3000/webhook
  3. Add webhook signing secret to .env
    • STRIPE_WEBHOOK_SECRET=whsec_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Client

  1. Navigate to client folder
    • cd client
  2. Install dependencies
    • npm install
  3. Serve client
    • npm run dev

Credits

Contributors

Criterias

  • Backend ska vara byggt med Typescript

  • Val av databas är fritt: Mongodb eller MySQL

  • Plan över fördelning av arbetsuppgifter och vilka dagar de ska utvecklas ska vara framtagen

  • Försäljning av prenumerationer på 3 olika nivåer ska säljas: grundpaket, plus och fullständigt

  • En användare ska kunna logga in och logga ut från sitt konto

  • Startsidan efter inloggning ska visa alla de innehållssidor som användaren har tillgång till på sin prenumerationsnivå

  • Innehållssidor ska hämta all sin information från databasen, rubrik innehåll och kunna begränsas till olika nivåer av prenumerationen

  • Om en användare inte har rätt nivå på sin prenumeration ska den få ett förslag att uppgradera när en begränsad sida laddas

  • Betalsteg ska implementeras

  • Prenumerationer ska förnyas per vecka antingen genom ett cron-job eller med stripe subscriptions

  • När en prenumerationsbetalning ej går igenom ska rättigheterna begränsas så att de inte längre kan läsa de sidor de tidigare haft tillgång till

  • En användare ska kunna betala en förnyelse som inte automatiskt gått igenom, genom att gå igenom betalsteget igen

  • En användare ska när som helst kunna avsluta sin prenumeration, men ska fortfarande ha tillgång till sin nivå fram tills de betalade dagarna har löpt ut

  • En administratör ska kunna lägga in innehållssidor och välja vilken nivå man måste ha för att få se den

License

This project is licensed under the MIT License.