A scalable web application built with Next.js, TypeScript, and PostgreSQL. All services are containerized using Docker Compose for streamlined development.
- Next.js: React framework for server-side rendering and static site generation.
- TypeScript: Enhances JavaScript with static typing.
- PostgreSQL: Robust relational database system.
- Prisma: Modern ORM for database interactions.
- Docker & Docker Compose: Containerization and orchestration of services.
Ensure you have the following installed on your machine:
-
Clone the Repository
git clone https://github.com/yourusername/please-forget-me.git cd please-forget-me -
Set Up Environment Variables
Create a
.envfile in the project root:
Start all services using Docker Compose:
npm run start:allnpm run stop:allIf migrations are not automatically applied on startup, run them manually:
exec app npx prisma migrate dev --name init- Next.js App: http://localhost:3000
- PostgreSQL Database: Accessible via
localhost:5432using a PostgreSQL client (e.g., pgAdmin, DBeaver)
Mailgun is a powerful email delivery service used for sending, receiving, and tracking emails via a simple API. This project integrates Mailgun to handle email communication efficiently, leveraging its robust infrastructure to ensure reliable and scalable email delivery. The implementation uses the Mailgun API to send messages, making it easy to manage transactional emails directly from the application.
Prisma is an ORM for Node.js and TypeScript that makes it easy to work with databases. It provides a type-safe way to interact with your database, making it easier to write and maintain your code.
Models are defined in the prisma/schema.prisma file.
Types are generated when the schema is updated after running npx prisma generate.