A full-stack note-taking application with authentication using React and Express.
cloud-notes/
├── client/ # Frontend React application
│ ├── src/
│ │ ├── components/ # Reusable React components
│ │ ├── pages/ # Page components
│ │ ├── services/ # API service layer
│ │ ├── contexts/ # React contexts
│ │ └── config/ # Configuration files
│ └── package.json
│
└── server/ # Backend Express application
├── src/
│ ├── routes/ # API route definitions
│ ├── controllers/ # Request handlers
│ ├── services/ # Business logic & Firestore communication
│ ├── middleware/ # Custom middleware
│ └── config/ # Configuration files
└── package.json
- Node.js (v18 or higher)
- Firebase project with Firestore and Authentication enabled
-
Navigate to the server directory: ```bash cd server ```
-
Install dependencies: ```bash npm install ```
-
Create a
.envfile based on.env.exampleand add your Firebase Admin SDK credentials -
Start the server: ```bash npm run dev ```
-
Navigate to the client directory: ```bash cd client ```
-
Install dependencies: ```bash npm install ```
-
Update
src/config/firebase.config.jswith your Firebase project configuration -
Start the development server: ```bash npm run dev ```
- User authentication (login/register) with Firebase Auth
- Create, read, update, and delete notes
- Dark theme with bright blue accents
- Secure API with JWT token verification
- Firestore database integration
POST /api/auth/register- Register a new userPOST /api/auth/login- Login userGET /api/auth/verify- Verify user token
GET /api/notes- Get all user notesGET /api/notes/:id- Get specific notePOST /api/notes- Create new notePUT /api/notes/:id- Update noteDELETE /api/notes/:id- Delete note
- Frontend: React, React Router, Tailwind CSS, Firebase Client SDK
- Backend: Express, Firebase Admin SDK, Firestore
- Authentication: Google Cloud Identity Platform (Firebase Auth)