Arkivis is a modern, cloud-native web app designed to help users take and manage notes through a clean interface. Built using industry-backed technologies and hosted on AWS, it offers a scalable, low-cost entry point into cloud-native development.
Website: https://arkivis.com
Layer | Technology |
---|---|
Frontend | React + Tailwind CSS |
Backend | FastAPI (Python) |
API Hosting | AWS Lambda + API Gateway |
Frontend Hosting | AWS S3 + CloudFront |
Authentication | Google OAuth 2.0 |
NoSQL DB | MongoDB Atlas (Free Tier) |
CI/CD | GitHub Actions |
Domain Mgmt | AWS Route 53 |
Infrastructure | Docker + Terraform (Infra as Code) |
Monitoring | Sentry (frontend/backend), AWS CloudWatch |
- User login via Google (OAuth 2.0)
- Notes tab to view, add, and manage notes
- Responsive design for mobile and desktop
- Clean UI with Tailwind CSS
- FastAPI backend hosted serverlessly via AWS Lambda
- Static frontend hosted on S3 + CloudFront
- GitHub Actions for CI/CD
- Free-tier compatible AWS deployment
- React with functional components and hooks
- Tailwind CSS for design
- S3 + CloudFront for hosting the static build
- Deployed via GitHub Actions
- FastAPI (Python)
- Hosted as AWS Lambda functions
- Served through API Gateway
- Google OAuth 2.0
- Handled client-side and passed to backend securely
- MongoDB Atlas (Free Tier)
- For flexible, document-based notes
- (Phase 2): PostgreSQL via Amazon RDS (for structured data)
- GitHub Actions for backend/frontend deployment
- Docker used for local development and testing
- Terraform used for setting up AWS infrastructure
- Sentry for error tracking (FE + BE)
- AWS CloudWatch for basic logs and monitoring
Service | Purpose |
---|---|
S3 + CloudFront | Host static React build |
Lambda | Run backend Python (FastAPI) |
API Gateway | Route HTTPS requests to backend |
Route 53 | Manage custom domain |
IAM | Secure role & access management |
CloudWatch | Logs + basic metrics |
Feature | Tech Stack / Notes |
---|---|
User Profiles | Add RDS PostgreSQL for structured user data |
Notes Sharing | User relationships, ACLs |
File Uploads | Use AWS S3 (Signed URLs) |
Notifications | AWS SNS or WebSockets |
Version History | Store diff/backup of notes |
Real-time Collab | WebSockets or Firebase Realtime DB |
Friend System | Add MongoDB relational structure or RDS |
Event System | AWS SQS for decoupled event handling (e.g. note saved) |
GraphQL Layer | Add AWS AppSync or Graphene for querying flexibility |
Auth Migration | Migrate to AWS Cognito for full IAM integration |
Analytics | Amazon QuickSight or third-party dashboarding tools |
- β‘ Fast: React + Tailwind = quick UI development
- βοΈ Scalable: AWS Lambda scales on-demand
- π Cost-Effective: AWS Free Tier for all major services
- π Secure: OAuth login and API Gateway protection
- π§ Educational: Builds real-world AWS, Docker, CI/CD experience
This project uses a monorepo layout to contain both frontend and backend apps, as well as infrastructure and automation.
Click to view structure
arkivis/
βββ frontend/ # React + Tailwind CSS application
β βββ public/ # Static assets (favicon, index.html, etc.)
β βββ src/
β β βββ components/ # Reusable UI components
β β βββ pages/ # Page-level views (Home, Login, Notes, etc.)
β β βββ hooks/ # Custom React hooks
β β βββ services/ # API client logic (e.g., axios)
β β βββ App.tsx
β β βββ main.tsx
β βββ tailwind.config.js
β βββ vite.config.ts # Or next.config.js if using Next.js
β βββ package.json
β
βββ backend/ # FastAPI backend
β βββ app/
β β βββ api/ # Route declarations
β β βββ core/ # Settings, config, middleware
β β βββ models/ # Pydantic schemas and DB models
β β βββ services/ # Business logic (e.g., note operations)
β β βββ main.py # Entry point for FastAPI
β βββ requirements.txt
β βββ Dockerfile
β
βββ infra/ # Infrastructure as code
β βββ terraform/ # Terraform configuration
β β βββ frontend.tf # S3 + CloudFront resources
β β βββ backend.tf # Lambda + API Gateway
β β βββ variables.tf
β
βββ .github/ # GitHub Actions workflows
β βββ workflows/
β βββ deploy-frontend.yml
β βββ deploy-backend.yml
β
βββ .env # Environment variables (local use only)
βββ README.md
βββ LICENSE