A full-stack web app to create, view, edit, and delete notes — built with React on the frontend and Spring Boot + MongoDB on the backend.
| Layer | Technology |
|---|---|
| Frontend | React 19, Vite, Tailwind CSS, Axios |
| Backend | Spring Boot 3.5, Java 17, Spring Web, Spring Data MongoDB |
| Database | MongoDB |
- User authentication (login / forgot password)
- Create, view, edit, and delete notes
- Modal-based note editor
- Persistent storage with MongoDB
Crate/
├── frontend/ # React + Vite app
└── test/ # Spring Boot backend
Make sure you have these installed before starting:
- Node.js v18 or higher —
node -v - Java 17 —
java -version - Maven —
mvn -v(or use the includedmvnwwrapper) - MongoDB running locally on port
27017
git clone https://github.com/<your-username>/crate.git
cd crate/CrateMake sure MongoDB is running locally:
# Linux / macOS
sudo systemctl start mongod
# macOS with Homebrew
brew services start mongodb-community
# Windows
net start MongoDBVerify it's running:
mongoshThe backend connects to mongodb://localhost:27017/userdatabase by default.
Navigate to the test/ folder — this is the Spring Boot project:
cd testOption A — Maven wrapper (recommended, no Maven install needed):
# Linux / macOS
./mvnw spring-boot:run
# Windows
mvnw.cmd spring-boot:runOption B — System Maven (if you have mvn installed):
mvn spring-boot:runOption C — IntelliJ IDEA:
- Open the
test/folder as a project in IntelliJ - Let it import the Maven dependencies (bottom progress bar)
- Open
TestApplication.java→ click the green ▶ button next to the class
Option D — VS Code:
- Install the Spring Boot Extension Pack
- Open
test/folder - Click Run above the
mainmethod inTestApplication.java
✅ Backend is ready when you see this in the terminal:
Started TestApplication in X.XXX seconds (process running for X.XXX)
The backend runs on http://localhost:8080
Quick verify in a new terminal:
curl http://localhost:8080Note on CORS: The backend is already configured to accept requests from
http://localhost:5173(the Vite dev server). If you change the frontend port, update the@CrossOriginannotation inTestApplication.java.
Open a new terminal:
cd frontend
npm install
npm run devThe frontend starts on http://localhost:5173
Open that URL in your browser — you'll land on the login page.
Backend config is in test/src/main/resources/application.properties:
spring.application.name=test
spring.data.mongodb.uri=mongodb://localhost:27017/userdatabaseChange the MongoDB URI here if your setup is different (e.g. a remote Atlas cluster).
| Route | Page |
|---|---|
/ |
Login |
/notes |
Notes dashboard |
| Problem | Fix |
|---|---|
CORS error in browser |
Make sure the backend is running on port 8080 |
npm ERR! missing script: dev |
You're in the wrong folder — cd frontend first |
MongoServerError: connect ECONNREFUSED |
MongoDB isn't running — start it with the commands above |
Port 8080 already in use |
Run lsof -ti:8080 | xargs kill then retry |
java: command not found |
Java 17 is not installed or not on your PATH |
White screen on /notes |
Backend is down — check the Spring Boot terminal for errors |
See CONTRIBUTING.md for contribution levels (Easy → Very Hard), setup tips, and PR guidelines.
Open issues are listed in ISSUES.md — pick one and get started!