A monorepo technical test project using Turborepo, featuring a full-stack application with Express.js backend and Next.js frontend.
The project uses Turborepo and contains:
.github
└─ workflows
└─ CI with pnpm cache setup
.vscode
└─ Recommended extensions and settings for VSCode users
apps
├─ backend-repo
| ├─ Express.js
| ├─ Firebase Admin SDK
| ├─ Jest for testing
| └─ TypeScript
└─ frontend-repo
├─ Next.js
├─ React
├─ MUI Theme Customization
├─ Firebase Authentication
├─ Redux Store
└─ Jest for testing
packages
└─ types
└─ Shared TypeScript types for API responses and user models
- Express.js server with TypeScript
- Firebase Admin SDK integration
- Authentication middleware
- User routes and controllers
- Integration and unit tests with Jest
- Clean architecture with separate controllers, routes, and repositories
- Next.js application
- Material-UI with custom theme
- Firebase Authentication
- Redux store management
- Custom hooks for user session and data
- Component-based architecture (atoms/molecules)
- Unit tests with Jest and Snapshots
- Service worker for auth handling
- Common TypeScript interfaces
- API response types
- User model definitions
- Common utility functions
- Err
- Node.js (version specified in
.node-version
) - pnpm package manager
- Clone the repository:
git clone https://github.com/ImBIOS/improved-octo-fortnight.git
cd improved-octo-fortnight
- Install dependencies:
pnpm install
- Set up environment variables:
# For backend
cp apps/backend-repo/.env.example apps/backend-repo/.env
# For frontend
cp apps/frontend-repo/.env.example apps/frontend-repo/.env
- Configure Firebase:
- Create a Firebase project
- Set up Firebase Admin SDK for backend
- Configure Firebase Authentication for frontend
- Update Firebase configuration in respective .env files
- Start the backend server:
cd apps/backend-repo
pnpm dev
- Start the frontend application:
cd apps/frontend-repo
pnpm dev
The project includes comprehensive test suites for both backend and frontend:
# Run backend tests
cd apps/backend-repo
pnpm test
# Run frontend tests
cd apps/frontend-repo
pnpm test
- Build the backend:
cd apps/backend-repo
pnpm build
- Deploy to your preferred hosting service (e.g., Google Cloud Run, Heroku)
- Set up environment variables in your hosting platform
- Build the frontend:
cd apps/frontend-repo
pnpm build
- Deploy to your preferred hosting service (e.g., Vercel, Netlify)
- Configure environment variables in your hosting platform
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.