BlogRam is a full-stack blogging application that allows users to create, update, and manage blog posts.
- ✍️ Create, edit, and delete blog posts
- 👥 View other users
- 🔐 Authentication system
- 🧪 End-to-end testing with Cypress (login flow)
- ⚡ Lightweight frontend with vanilla JavaScript
- Backend: Node.js + Express
- Frontend: Vanilla HTML, CSS, JavaScript
- Database: Prisma (BaaS / hosted database)
- Testing:
- Unit tests: Jest
- End-to-end tests: Cypress
Make sure you have Node.js installed.
npm installnpm run devnpm testnpx cypress open- Jest → unit testing
- Cypress → end-to-end testing (login flow)
This project uses GitHub Actions for continuous integration.
Tests run automatically on:
- Every push to
main - Every pull request targeting
main
This ensures all changes are tested before merging.
The following environment variables are required:
DATABASE_URL=your_prisma_database_url
JWT_SECRET=your_secret_keyIn CI, these should be stored as GitHub Secrets.
final_project/
├── src/ # Backend source (Express + TS)
|── middleware # Auth middleware using JWT
|── routes # Endpoints to manage objects
|── views # User interfaces
|── utils # Helper functions
|── tests # Jest tests
├── prisma/ # Prisma schema
├── cypress/ # Cypress tests
├── package.json
- CI uses a hosted Prisma database (no local DB required)
- The app is built before running Cypress to avoid TS runtime issues
- Cypress automatically starts the server before running tests