Skip to content

A modern note-taking application that enables users to create, manage, and share notes efficiently using MDX format. Built with Next.js, Node.js, and PostgreSQL.

Notifications You must be signed in to change notification settings

coderdal/notes-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Notes App

A modern, full-stack note-taking application that enables users to create, manage, and share notes efficiently using MDX format. Built with Next.js, Node.js, and PostgreSQL.

🚀 Live Demo

Live Application

✨ Features

  • 📝 Rich MDX Editing: Create and edit notes with full Markdown syntax and embedded React components
  • 🔒 Secure Authentication: JWT-based authentication with refresh token rotation
  • 🤝 Note Sharing: Share notes with specific users or make them public
  • 💫 Auto-save: Never lose your work with automatic saving
  • 👥 Multi-device Support: Access your notes from any device with session management

🛠️ Tech Stack

  • Frontend: Next.js, TailwindCSS
  • Backend: Node.js, Express
  • Database: PostgreSQL
  • Authentication: JWT (Access + Refresh Tokens)
  • Content: MDX (Markdown + JSX)

🚀 Getting Started

Prerequisites

  • Docker and Docker Compose
  • Git

Installation

  1. Clone the repository
git clone https://github.com/coderdal/notes-app
cd notes-app
  1. Set up environment variables:

    • Copy .env.example to .env
    • Fill in the required environment variables
  2. Start the application using Docker Compose:

docker compose up

This will start all services:

To stop the application:

docker compose down

To rebuild the containers after making changes:

docker compose up --build

📝 Environment Variables

Create a .env file in the root directory with the following variables:

# PostgreSQL
PGUSER=            # PostgreSQL username
PGPASSWORD=        # PostgreSQL password
PGDATABASE=        # PostgreSQL database name
PGHOST=            # PostgreSQL host
PGPORT=            # PostgreSQL port

# pgAdmin
PGADMIN_USER=      # pgAdmin email address
PGADMIN_PASSWORD=  # pgAdmin password
PGADMIN_PORT=      # pgAdmin port (e.g., 5050)

# API
API_PORT=          # API server port
FRONTEND_URL=      # Frontend URL for CORS
ACCESS_TOKEN_SECRET=    # JWT access token secret
REFRESH_TOKEN_SECRET=   # JWT refresh token secret
HASH_SECRET_KEY=       # Password hashing secret

# Frontend
NEXT_PUBLIC_API_URL=   # Backend API URL
FRONTEND_PORT=         # Frontend port

🤝 Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

📞 Contact

For support, email contact@erdal.net.tr or open an issue in the GitHub repository.

About

A modern note-taking application that enables users to create, manage, and share notes efficiently using MDX format. Built with Next.js, Node.js, and PostgreSQL.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published