π Fastnote is a serverless note-taking app with MERN stacks, aiming at efficient idea management, offering features such as search functionality, auto-generation of summaries, and tagging with openAI.
π Website URL: www.fastnote.space
β οΈ Please be aware that in guest mode, your data will be lost upon logging out.
π How to Use: Tutorial
π Under the Hood: Details
Note: In the 'Under the Hood' section, we'll take a closer look at the technical aspects of the project and how various technologies and skills were employed to achieve specific goals.
- Main Features
- Architecture
- MongoDB Database Schema
- CI / CD
- API Documentation
- Technique
- Cloud Services (AWS)
- Contact
- Full-Text-Search: Efficient full-text search functionality, allowing users to quickly find related notes they have written.
- Asynchronous Processing: Perform independent summarization tasks with lambda functions
- Scalable Design: Handle high-load scenarios by initiating additional containers as needed.
- Infrastructure Management: Employed Terraform for resources management.
The database table schema is defined using Mongoose schema.
The deployment process for both frontend and backend components is managed separately.

-
Backend Process: If the tests pass successfully, a Docker image is pushed to a Docker Hub, triggering an update in the AWS ECS services.
-
Frontend Process: Every commit initiates a build process for the React application. The resulting static files are uploaded directly to AWS S3 for web hosting, followed by an invalidation of the CloudFront cache.
Our project utilizes integration testing, focusing primarily on typical use-cases and critical paths.
You can find the coverage report in the /backend/coverage
directory of the repository.
- GitHub Actions: Automates the workflow from code push to deployment.
- Jest and SuperTest: Utilizes for integrated testing in the backend API.
- Docker: Ensures consistent, reproducible environments for AWS ECS.
- Terraform: Manages and provisions AWS services resources, enhancing scalability and consistency.
The API documentation is supported by Swagger
π https://app.swaggerhub.com/apis-docs/fastnote/fast-note_api/1.0.0
Technologies and tools utilized in the project.
- Docker
- Terraform
- Node.js / Express.js
- MongoDB Atlas
- ElastiCache (Redis)
- Jest, SuperTest
- GitHub Actions
- OpenAI
- Tiptap
- React (Hook)
- Sass
- Elastic Load Balancer
- Elastic Container Service (ECS)
- Elastic Compute Cloud (EC2)
- Fargate
- Simple Storage Service (S3)
- CloudFront (CDN)
- Simple Queue Service (SQS)
- Lambda
- Route 53
π§π»βπ» Feng Ming, Chang
βοΈ [email protected]