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.
- 📝 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
- Frontend: Next.js, TailwindCSS
- Backend: Node.js, Express
- Database: PostgreSQL
- Authentication: JWT (Access + Refresh Tokens)
- Content: MDX (Markdown + JSX)
- Docker and Docker Compose
- Git
- Clone the repository
git clone https://github.com/coderdal/notes-app
cd notes-app-
Set up environment variables:
- Copy
.env.exampleto.env - Fill in the required environment variables
- Copy
-
Start the application using Docker Compose:
docker compose upThis will start all services:
- Frontend: http://localhost:[FRONTEND_PORT]
- Backend API: http://localhost:[API_PORT]
- PostgreSQL Database
- pgAdmin: http://localhost:[PGADMIN_PORT]
To stop the application:
docker compose downTo rebuild the containers after making changes:
docker compose up --buildCreate 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- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
For support, email contact@erdal.net.tr or open an issue in the GitHub repository.