An AI-powered note-taking application with Perplexity AI integration for intelligent note parsing, contact extraction, and task management.
- Basic Note Input: Clean text area with formatting support (bold, italic, bullet points)
- Auto-save: Automatic saving every 30 seconds
- AI-Powered Parsing: Perplexity AI integration for intelligent note analysis
- Contact Extraction: Automatic extraction of names, phone numbers, and email addresses
- Task Management: AI-generated to-do lists from action items in notes
- Simple Authentication: Email/password authentication
- Frontend: React + TypeScript + TailwindCSS
- Backend: Node.js + Express + TypeScript
- Database: PostgreSQL
- AI: Perplexity AI API
- Authentication: Firebase Auth
- Node.js 18+
- PostgreSQL
- Perplexity AI API key
- Clone the repository:
git clone <repository-url>
cd NoteTrix- Install dependencies:
npm run install:all- Set up environment variables:
# Backend (.env)
cp backend/.env.example backend/.env
# Edit backend/.env with your configuration- Set up the database:
cd backend
npm run db:setup- Start the development servers:
npm run devThe application will be available at:
- Frontend: http://localhost:3000
- Backend: http://localhost:5000
PORT=5000
DATABASE_URL=postgresql://username:password@localhost:5432/notetrix
PERPLEXITY_API_KEY=your_perplexity_api_key
JWT_SECRET=your_jwt_secret
NoteTrix/
├── frontend/ # React + TypeScript frontend
├── backend/ # Node.js + Express backend
├── package.json # Root package.json with workspaces
└── README.md # This file
POST /api/auth/register- User registrationPOST /api/auth/login- User loginPOST /api/auth/logout- User logout
GET /api/notes- Get all notes for userPOST /api/notes- Create new notePUT /api/notes/:id- Update noteDELETE /api/notes/:id- Delete note
GET /api/contacts- Get all contacts for userPOST /api/contacts- Create new contact
GET /api/tasks- Get all tasks for userPUT /api/tasks/:id- Update task (mark complete/incomplete)
# Frontend tests
cd frontend && npm test
# Backend tests
cd backend && npm testnpm run build- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
MIT License