Tech Stack • How To Use • Credits • License
- Angular
- TypeScript
- Tailwind CSS
- Zod
- Jasmine & Karma
- Node.js
- Express
- TypeScript
- Prisma ORM
- PostgreSQL
- Zod
- Jest
- GitHub Actions
- Docker
- Figma
- GitHub Projects
- Miro
These steps assume that you have Node v.20, Stripe CLI and Docker installed.
- Clone the repo
git clone https://github.com/Medieinstitutet/uppgift-3-super-awesome-mega-team.git
- Navigate to project root
cd uppgift-3-super-awesome-mega-team
- Run postgreSQL in docker
docker compose -p postgres up -d
- Start server in a separate terminal window. Follow instructions below.
- Start stripe listener in a separate terminal window. Follow instructions below.
- Start client. Follow instructions below.
- Go to localhost:4200 to view website.
- Navigate to server directory
cd server
- Install dependencies
npm install
- Add .env file, see example in
/server/.env.example
- Migrate and seed database
npm run db:reset
- Start server
npm run dev
- Optional: Run
npx prisma studio
to open Prisma database interface.
- Login to stripe cli
stripe login
- Start stripe listener
stripe listen --forward-to localhost:3000/webhook
- Add webhook signing secret to .env
STRIPE_WEBHOOK_SECRET=whsec_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- Navigate to client folder
cd client
- Install dependencies
npm install
- Serve client
npm run dev
-
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
This project is licensed under the MIT License.