https://github.com/kauereinbold/reminders
A simple and intuitive web application for managing your daily reminders.
https://github.com/kauereinbold/reminders
clean-code csharp ddd design-patterns dotnet efcore gin go postgres reactjs solid tdd
Last synced: 10 months ago
JSON representation
A simple and intuitive web application for managing your daily reminders.
- Host: GitHub
- URL: https://github.com/kauereinbold/reminders
- Owner: KaueReinbold
- Created: 2017-01-12T20:59:38.000Z (over 9 years ago)
- Default Branch: main
- Last Pushed: 2025-08-21T15:44:26.000Z (10 months ago)
- Last Synced: 2025-08-21T22:59:20.900Z (10 months ago)
- Topics: clean-code, csharp, ddd, design-patterns, dotnet, efcore, gin, go, postgres, reactjs, solid, tdd
- Language: C#
- Homepage:
- Size: 25.8 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 19
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Reminders
A simple and intuitive web application for managing your daily reminders.
🚀 **Live Demo**: [https://kauereinbold.github.io/Reminders](https://kauereinbold.github.io/Reminders)
## Features
- **User-friendly Interface**: Easily create, edit, and delete reminders with a clean and intuitive user interface.
- **Persistent Storage**: Reminders are stored securely, ensuring you never lose your important tasks.
- **Customization**: Customize your reminders with different colors, tags, and priority levels.
- **Reminders Notification**: Receive timely reminders to stay on top of your tasks.
# Learning Project
Please note that as a learning project, the code here may not follow best practices at all times as it's a process of learning and improving. Feedback and suggestions are always welcome!
## Project Status
[](https://coveralls.io/github/KaueReinbold/Reminders?branch=main)
### Build Status
[](https://github.com/KaueReinbold/Reminders/actions/workflows/dotnet-pull-request.yml)
[](https://github.com/KaueReinbold/Reminders/actions/workflows/docker-pull-request.yml)
[](https://github.com/KaueReinbold/Reminders/actions/workflows/react-pull-request.yml)
[](https://github.com/KaueReinbold/Reminders/actions/workflows/cypress-e2e.yml)
[](https://github.com/KaueReinbold/Reminders/actions/workflows/deploy-pages.yml)
### Docker Hub
Reminders MVC:
[](https://hub.docker.com/r/kauereinbold/reminders-mvc)
Reminders API:
[](https://hub.docker.com/r/kauereinbold/reminders-api)
## Testing
The Reminders application includes comprehensive testing to ensure reliability and functionality:
### Unit Testing with Jest
The ReactJS application includes unit tests using Jest and React Testing Library:
- **Location**: `src/app/reactjs/reminders-app/src/`
- **Coverage**: Components, hooks, API layers, and pages
- **Run tests**: `npm test` (in the React app directory)
- **Coverage report**: `npm test -- --coverage`
### End-to-End Testing with Cypress
Comprehensive E2E tests validate critical user interactions against the deployed application:
- **Location**: `src/test/cypress/`
- **Testing Environment**: Tests run against the deployed GitHub Pages application at `https://kaueereinbold.github.io/Reminders`
- **Coverage**: List, Create, Edit, Delete operations
- **Test categories**:
- List functionality (viewing reminders)
- Creation workflow (create new reminder)
- Editing workflow (modify existing reminder)
- Deletion workflow (remove reminder with confirmation)
- Integration tests (full user journeys)
- **Run tests**:
- Interactive: `npm run cy:open` (in Cypress directory)
- Headless: `npm run cy:run` (in Cypress directory)
- Against local dev: `CYPRESS_baseUrl=http://localhost:3000 npm run cy:run`
For detailed testing setup and usage instructions, see:
- [Cypress Testing README](src/test/cypress/README.md)
### Continuous Integration
All tests run automatically on pull requests:
- Jest unit tests via GitHub Actions
- Cypress E2E tests via GitHub Actions
- Coverage reporting and artifact collection
## Docker Compose Configuration
This section describes the Docker Compose configuration for deploying the Reminders application.
## Usage
To deploy the Reminders application using Docker Compose, follow these steps:
1. Clone the repository: `git clone https://github.com/KaueReinbold/Reminders.git`
2. Navigate to the project directory: `cd Reminders`
3. Run Docker Compose: `docker-compose up -d`
The application can be accessed using the following URLs:
- **API 1:** [http://localhost:5000](http://localhost:5000)
- **API 2:** [http://localhost:5003](http://localhost:5003)
- **MVC:** [http://localhost:5001](http://localhost:5001)
- **Nginx Load Balancer:** [http://localhost:9999](http://localhost:9999)
Please note that the exact URLs may vary based on your specific configuration and environment. Adjust them accordingly.
## Support
If you encounter any issues or have suggestions, we encourage you to open an issue on the [GitHub Issues](https://github.com/KaueReinbold/Reminders/issues) page.