๐ ZettaNote is an open-source note-taking app in active development, and we welcome contributions from everyone! By participating in this project, you agree to abide by its Code of Conduct.
We appreciate all forms of contribution, including:
- Code Contributions: Implementing new features, fixing bugs, refactoring, and improving performance.
- Documentation: Improving existing documentation or adding new guides.
- Testing: Writing unit, integration, or end-to-end tests.
- Feedback & Ideas: Sharing suggestions for new features or improvements.
- Reporting Bugs: Identifying and reporting issues.
If you find a bug, please:
- Check the existing [Issues] to see if it has already been reported.
- If not, open a new Issue and use the "Bug Report" template.
- Include a clear title, a description of the bug, steps to reproduce it, and your environment details (OS, Node version, etc.).
If you have an idea for a new feature or improvement:
- Check the planned features on [ZettaNote] and the existing [Issues].
- If it's new, open a new Issue and use the "Feature Request" template.
- Describe the feature, why it would be useful, and any potential implementation details you've considered.
Ensure you have the following installed:
- Node.js (v18+ recommended)
- MongoDB (local or cloud instance)
- pnpm (recommended) or npm
-
Clone the repository
git clone https://github.com/braydenidzenga/zettanote.git cd ZettaNote/backend -
Install dependencies
pnpm install
-
Configure environment variables
# Copy .env.example to .env and fill in your variables cp .env.example .env -
Start the backend server
pnpm dev
- Open Postman
- Click Import
- Select
backend/postman_collection_for_api_testing.json - Start testing endpoints (ensure backend is running at
http://localhost:4000)
-
Navigate to frontend directory
cd ZettaNote/frontend -
Install dependencies
pnpm install
-
Update configuration
# Create .env file and add your backend URL echo "VITE_API_URL=http://localhost:4000" > .env
-
Start the development server
pnpm dev
When you're ready to contribute code:
- Create a new branch for your work. Use a descriptive name like
feat/new-feature-nameorfix/issue-description.git checkout -b your-feature-branch-name
- Commit your changes with clear and concise messages.
- Push your branch to your forked repository.
git push origin your-feature-branch-name
- Open a Pull Request (PR) against the
mainbranch of the originalbraydenidzenga/zettanoterepository.
In your Pull Request:
- Provide a clear title and description of your changes.
- Reference the relevant issue number (e.g.,
Fixes #123). - Ensure all tests pass (if applicable).
- Be ready to address feedback and make further changes!
- Check the README for setup instructions.
- Ask questions or suggest ideas in the Discussions or Issues tab.
Thank you for your interest in making ZettaNote better!
When working on branches, avoid using git push --force (force-push) unless you're explicitly rebasing your branch to clean up history or otherwise required to rewrite commits. In most cases you do not need to worry about preserving every intermediate commit โ we use squash merges for pull requests, so the final merged commit will be a single clean commit.