A full-stack note-taking application built with modern web technologies.
Check out the live application at https://notekeep.up.railway.app/
- User authentication (register/login)
- Create, read, update, and delete notes
- Real-time note management
- Responsive web interface
- Firebase Firestore integration for data persistence
- Backend: ElysiaJS (Bun runtime)
- Database: Firebase Firestore
- Frontend: Vanilla HTML, CSS, JavaScript
- Build Tool: Bun
- Bun (latest version)
- Firebase project with Firestore enabled
-
Clone the repository:
git clone <repository-url> cd note-app-idcamp
-
Install dependencies:
bun install
-
Set up Firebase:
- Create a Firebase project at https://console.firebase.google.com/
- Enable Firestore Database
- Update the Firebase config in
src/index.tsif needed
Run the development server:
bun run devThe app will be available at http://localhost:3000
Build the application:
bun run buildStart the production server:
bun run start-
POST /api/auth/register- Register a new user- Body:
{ "email": "string", "password": "string" }
- Body:
-
POST /api/auth/login- Login user- Body:
{ "email": "string", "password": "string" }
- Body:
-
GET /api/notes?userId=<userId>- Get all notes for a user -
POST /api/notes- Create a new note- Body:
{ "title": "string", "content": "string", "userId": "string" }
- Body:
-
PUT /api/notes/:id- Update a note- Body:
{ "title": "string", "content": "string" }
- Body:
-
DELETE /api/notes/:id- Delete a note
GET /api/health- Check server and database status
note-app-idcamp/
├── public/
│ ├── index.html
│ ├── global.css
│ └── script.js
├── src/
│ └── index.ts
├── package.json
├── tsconfig.json
├── bun.lock
└── README.md