Welcome to LayerForge 3D, a premium, end-to-end e-commerce and 3D printing service platform. This project leverages the MERN stack (MongoDB, Express, React Native, Node.js) to deliver a high-performance, visually stunning experience for both customers and administrators.
- 🌐 Frontend App (Web): layerforge3d.vercel.app
- ⚙️ Backend API: threedink-studio.onrender.com
- Product Discovery: Browse a curated catalogue of 3D-printed products with high-quality imagery and detailed specifications.
- Cart Management: Add, remove, and manage items in a persistent shopping cart.
- Secure Checkout: Streamlined order placement process for a frictionless user experience.
- STL Upload Support: Users can upload
.stlfiles directly for custom print requests. - Material Selection: Choose from various materials including PLA, ABS, and Resin.
- Print Configuration: Customize infill, layer height, and post-processing options to get an accurate quote.
- Instant Authentication: Secure, streamlined user registration and login flow without email bottlenecks.
- JWT-Based Security: Robust session management using JSON Web Tokens.
- Role-Based Access Control (RBAC): Distinct permissions and interfaces for Customers and Administrators.
- Data Validation: Comprehensive frontend and backend validation, including strict pattern matching for Sri Lankan phone numbers.
- Cost Calculator: Advanced tool for admins to calculate production costs (material, energy, machine time, labor) and generate optimized selling prices.
- Order Tracking: Real-time management of shop and custom orders, status updates, and tracking number assignment.
- Analytics & Revenue: View active print jobs, best-selling items, and recent monthly revenue directly from the dashboard.
- Content Management (CMS): Full CRUD capabilities for products, including image uploads and description editing.
- Dark/Light Mode: Fully responsive, system-aware dynamic theme engine across 16 screens, persisting user preference.
- Premium Aesthetics: High-end glassmorphism, gradient overlays, and curated Slate/Indigo color tokens for both dark and light modes.
- Fluid Navigation: Seamless stack and tab routing using React Navigation.
| Layer | Technology |
|---|---|
| Mobile App | React Native + Expo SDK 54 |
| Backend | Node.js + Express 4 |
| Database | MongoDB + Mongoose 8 |
| File Storage | Multer (Local Storage) |
| Authentication | JWT (jsonwebtoken) + BcryptJS |
| State Management | React Context API (Auth, Cart, Theme) |
| Networking | Axios |
| UI Components | Custom Premium Components |
LayerForge-3D_WMT/
├── backend-node/ ← REST API (Node.js/Express)
│ ├── src/models/ (Mongoose schemas with business logic)
│ ├── src/routes/ (API route definitions)
│ ├── src/controllers/(Business logic & DB interaction)
│ ├── src/middleware/ (Auth, Validation, Image Uploads)
│ └── public/ (Static storage for images and STL files)
│
├── mobile/ ← React Native + Expo Application
│ ├── app/screens/ (UI views: Admin, Auth, Shop, Upload)
│ ├── app/context/ (State management: Auth, Cart, Theme)
│ ├── app/lib/ (Axios configuration & utilities)
│ ├── app/theme/ (Theme definitions and color tokens)
│ └── app/data/ (Static data & constants)
│
└── assets/ ← Project branding & documentation assets
- Node.js (v18+ recommended)
- MongoDB (Running locally or via Atlas)
- Expo Go App (Installed on your physical device)
cd backend-node
npm install
npm run devBy default, the frontend is configured to use the production backend (https://threedink-studio.onrender.com). To test locally, update API_BASE_URL in mobile/app/lib/config.js to http://localhost:8080.
cd mobile
npm install
npx expo start- Web App: Press
win the terminal to launch the web version in your browser. The backend is configured to accept dynamic CORS origins, making it suitable for deployment on Netlify/Vercel. - Physical Device: Scan the QR code with your Expo Go app.
Tip
Network Configuration: To test locally on a physical device with a local backend, update the API_BASE_URL in mobile/app/lib/config.js to your computer's local network IP address (e.g., 192.168.1.XXX:8080).
| Method | Endpoint | Access |
|---|---|---|
POST |
/auth/register |
Public |
POST |
/auth/login |
Public |
GET |
/api/products |
Public |
POST/PUT/DELETE |
/api/products/:id |
Admin |
GET/POST |
/orders |
Authenticated |
POST |
/api/uploads/stl |
Authenticated |
POST |
/stl-orders/calculate |
Admin |
GET |
/orders/admin/analytics |
Admin |
The following features are planned for future development to further enhance the platform:
- Finish Social Authentication Integration: Process Google and Apple sign-ins using the newly integrated UI buttons.
- Payment Gateway Integration: Integrate Stripe or PayPal to securely process credit cards directly inside the app, replacing manual receipt uploads.
- Advanced Search & Filtering: Add real-time product search, category filters, and sorting options to the
BrowseScreen. - Push Notifications: Integrate Firebase Cloud Messaging (FCM) to automatically notify users when their 3D print quote is ready or their order has shipped.
- Wishlist (Favorites) Feature: Allow users to save favorite products or 3D models to purchase later.
This is a 2nd Year, 2nd Semester Group Project by Team ITP_IT_56 — SLIIT Undergraduates.
| Student ID | Name |
|---|---|
| IT24103160 | Yapa Y.L.S. |
| IT24104072 | Wasala W.L.M.P.D. |
| IT24102084 | Wittahachchi S.K. |
| IT24102402 | Munasinghe M.S.D. |
| IT24100883 | Karanayaka K.K.I.M. |
🎓 Team ITP_IT_56 | SLIIT Undergraduates | 2nd Year · 2nd Semester Group Project
