A modern, secure, and scalable application built with FastAPI and Next.js. This monorepo contains both the backend server and frontend web application.
-
Backend (FastAPI)
- RESTful API with OpenAPI documentation
- MongoDB database integration
- JWT authentication
- Rate limiting
- CORS support
- Internationalization (i18n)
- Structured logging
- Redis caching
- TOTP (Time-based One-Time Password) support
-
Frontend (Next.js)
- Modern React with TypeScript
- Responsive UI with Tailwind CSS
- Internationalization support
- Dark/Light theme
- Redux state management
- Form handling with React Hook Form
- Beautiful UI components with Radix UI
- Toast notifications
- Data visualization with Recharts
- Python 3.11+
- Node.js 18+
- MongoDB
- Redis
- Docker (optional)
-
Navigate to the backend directory:
cd packages/backend-server
-
Create a virtual environment:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt
-
Create a
.env
file with the following variables:MONGO_DB_URL=your_mongodb_url JWT_SECRET=your_jwt_secret JWT_ALGORITHM=HS512 ENV=development DB_NAME=your_db_name STACK_AUTH_PROJECT_ID=your_project_id STACK_AUTH_CLIENT_ID=your_client_id STACK_AUTH_CLIENT_SECRET=your_client_secret TOTP_SECRET=your_totp_secret
-
Navigate to the frontend directory:
cd packages/frontend-web
-
Install dependencies:
npm install
-
Create a
.env.local
file with necessary environment variables (if required)
-
Start the backend server:
cd packages/backend-server uvicorn app.main:app --reload
The server will start at
http://localhost:8000
- API Documentation:
http://localhost:8000/docs
(Swagger UI) - Alternative Documentation:
http://localhost:8000/redoc
(ReDoc)
- API Documentation:
-
Start the frontend development server:
cd packages/frontend-web npm run dev
The application will be available at
http://localhost:3000
-
Build the Docker image:
cd packages/backend-server docker build -t zecrypt-backend .
-
Run the container:
docker run -p 8080:8080 zecrypt-backend
-
Build the Docker image:
cd packages/frontend-web docker build -t zecrypt-frontend .
-
Run the container:
docker run -p 3000:3000 zecrypt-frontend
When running in development mode, the API documentation is available at:
- Swagger UI:
http://localhost:8000/docs
- ReDoc:
http://localhost:8000/redoc
- OpenAPI Schema:
http://localhost:8000/openapi.json
Note: API documentation is disabled in production environment for security reasons.
- JWT-based authentication
- Rate limiting to prevent abuse
- CORS protection
- Environment-based configuration
- Secure password hashing
- TOTP for two-factor authentication
The application supports multiple languages through:
- Backend: Custom i18n implementation
- Frontend: next-intl for translations
This project is licensed under the terms of the license included in the repository.
- 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
For support, please open an issue in the repository or contact the maintainer @anandude itsmeakhil.