A modern, collaborative note-taking and task management platform designed for teams and individuals who want to organize their ideas, track tasks, and manage workspaces efficiently.
NoteNexus is a full-stack application built with a Go backend and a .NET Blazor WebAssembly frontend. It provides a seamless experience for creating and managing notes, organizing tasks, and collaborating within shared workspaces.
Try the Live Application: https://note-nexusgh.onrender.com
- User authentication with secure credential handling
- Multi-workspace support with role-based access control
- Note creation and management with real-time updates
- Task and todo list management with completion tracking
- Workspace-scoped data isolation for security and organization
- RESTful API with comprehensive endpoint coverage
- Cross-origin resource sharing (CORS) support for distributed deployments
NoteNexus/
├── note-nexus-backend/ # Go backend API server
├── note-nexus-client/ # .NET Blazor WebAssembly frontend
├── Docker-compose.yml # Container orchestration for local development
├── LICENSE
└── README.md
- Language: Go 1.25.1
- Framework: Chi v5 (lightweight HTTP router)
- Database: PostgreSQL
- Authentication: JWT tokens
- Containerization: Docker
- Framework: .NET 9 with Blazor WebAssembly
- Language: C#
- UI Components: Custom Razor components
- Storage: Browser local storage for client state
- Containerization: Docker with Nginx
- Container Orchestration: Docker Compose
- Network: Custom bridge network for service communication
- Port Mapping: Backend on 8080, Frontend on 80
- Docker and Docker Compose
- Go 1.25.1 (for local backend development)
- .NET 9 SDK (for local frontend development)
- PostgreSQL 15+ (if running without Docker)
-
Clone the repository:
git clone https://github.com/Fenlot/Note-Nexus.git cd Note-Nexus -
Create the required SQLite database file for the backend:
touch note-nexus-backend/note.db
-
Build and start all services:
docker-compose up --build
-
Access the application:
- Frontend: http://localhost
- Backend Health Check: http://localhost:8080/health
- Frontend: https://note-nexusgh.onrender.com
- Backend API: https://note-nexus-anxm.onrender.com
- Backend Health Check: https://note-nexus-anxm.onrender.com/health
For detailed setup instructions for each component, refer to:
- Backend README for API development
- Frontend README for UI development
The backend exposes a RESTful API with the following main endpoint groups:
POST /v1/signup- Create a new user accountPOST /v1/login- Authenticate and receive JWT token
GET /v1/workspaces- List all workspaces for the authenticated user
POST /v1/workspaces/{workspaceId}/notes- Create a new noteGET /v1/workspaces/{workspaceId}/notes- List notes in workspacePUT /v1/workspaces/{workspaceId}/notes/{id}- Update a noteDELETE /v1/workspaces/{workspaceId}/notes/{id}- Delete a note
POST /v1/workspaces/{workspaceId}/todos- Create a new taskGET /v1/workspaces/{workspaceId}/todos- List tasks in workspacePATCH /v1/workspaces/{workspaceId}/todos/{id}- Update task statusPUT /v1/workspaces/{workspaceId}/todos/{id}- Update task contentDELETE /v1/workspaces/{workspaceId}/todos/{id}- Delete a task
The backend follows a clean architecture pattern with clear separation of concerns:
cmd/api/ - HTTP handlers and routing layer
internal/data/ - Database models and data access layer
migrations/ - Database schema and migrations
Each handler manages its own HTTP concerns while delegating business logic to the data models. JWT authentication middleware protects routes that require user authentication.
The frontend is built as a single-page application with component-based UI:
Pages/ - Top-level page components (Login, Signup, Notepad, Todo, Home)
Components/ - Reusable UI components (widgets, buttons, toggles)
Services/ - Application services (API calls, authentication, state management)
Layout/ - Layout components and styling
Models/ - Data transfer objects and type definitions
The database consists of five main tables:
- users: Stores user account information and authentication credentials
- workspaces: Represents collaborative spaces owned by users
- workspace_members: Maps users to workspaces with role assignments
- notes: User-created notes scoped to workspaces
- tasks: Todo items scoped to workspaces with completion tracking
All tables support cascading deletes to maintain referential integrity.
- Passwords are hashed before storage (no plain text passwords)
- JWT tokens expire after a configured period
- All workspace-scoped operations verify user membership before granting access
- CORS headers are explicitly configured to allow only trusted origins
- Authorization middleware validates user roles within workspaces
- Define the database schema changes in a new migration file
- Implement the data model methods in the backend
- Create the HTTP handler and route in the backend API
- Implement the frontend service to call the new endpoint
- Create Razor components to display the feature in the UI
- Test the complete flow through Docker Compose
Backend tests should cover:
- Database operations for correctness
- Authorization middleware for access control
- API responses for proper HTTP status codes
Frontend tests should cover:
- Component rendering and user interactions
- Service layer for API integration
- Local storage persistence
Both services are containerized and ready for deployment to cloud platforms. The Docker images can be pushed to container registries and deployed to services like:
- Docker Swarm
- Kubernetes
- AWS ECS
- Azure Container Instances
- Render or other container hosting platforms
When reviewing or contributing to this project:
- Follow the existing code style and patterns
- Keep commits focused on single features or fixes
- Write clear commit messages describing the changes
- Test your changes thoroughly before submitting
- Update documentation as needed
- Ensure all CORS origins are reviewed for security
This project is licensed under the MIT License. See the LICENSE file for details.
For more detailed information, please see:
- Backend documentation in the backend README
- Frontend documentation in the frontend README
- Database schema details in migrations/001_create_tables.sql
- API endpoint details in each service README
For questions or feedback about the project, please open an issue on the GitHub repository.