Input:
- specification
- figma Goal: Draw estimation if Shroomsters project
App contains 3 modules: web app, server, strapi.
App structure
WebApp
It's a web application with TG context integration. We use SvelteKit to build fast and robust app. Also, it's much smaller than typical SPA.
Server
It's a nodejs server build with fastify. It allows us to handle lots of requests. Because of the nature of an app our backend works within 2 different storage engines. Redis KV as a user database, where we store current values. Also, we make use of Google BigQuery to store history of balance updates etc.
CMS
As an admin panel we use strapi, it's a pretty solid instrument to provide user-friendly admin panel to customers. Here you can control TG invites, math etc.
BI
Because all historical data stored in BQ, you can easily make reports\dashboards in any BI system. If Metabase is ok for you — we can setup it for you.
Infrastructure
WebApp deployed to CloudFlare pages. Assets from Strapi deployed to CloudFlare R2. You will have to pay for CloudFlare services. Server and CMS deployed to dedicated server in a docker swarm cluster. We have to rent a server for that. In common, we usually stick to OVH.ie, if it's ok — you will have to pass KYC there, and we will be able to deploy there. Stage-Prod: there will be 2 environments (stage and prod). Be aware that they will not sync automatically.
Gant
Milestones
- Deliver a ready prototype/MVP of the application 3–4 weeks
- Post-MVP Phase: Testing and bug fixing
Team Composition:
- Project Manager:
- Responsible for overseeing the project and ensuring milestones are met.
- Lead Developer:
- Oversees the development team and ensures the technical direction aligns with project goals.
- Backend Developer with Blockchain specialization:
- Specializes in server-side logic, databases, and integration of application infrastructure.
- Oversees the integration and implementation of blockchain technologies, including NFTs and wallet authentication.
- **Frontend Developer:
- Focuses on user interface development and ensuring a seamless user experience.
- QA Engineer:
- Conducts testing to identify and fix bugs, ensuring the product meets quality standards.
- DevOps Engineer:
- Manages deployment processes and maintains the infrastructure.
Estimation:
| Role | 1 month | 2 month | Total | Rate | Total |
|---|---|---|---|---|---|
| Project Manager | 80 | 80 | 160 | 20 | 3200 |
| Lead Developer | 20 | 10 | 30 | 45 | 1350 |
| FullStack Developer | 168 | 80 | 248 | 35 | 8680 |
| Frontend Developer | 100 | 80 | 180 | 18 | 3240 |
| DevOps | 30 | 10 | 40 | 50 | 2000 |
| QA | 60 | 60 | 18 | 1080 | |
| 19550 |