A modern web application for managing first-time visitors and follow-ups, built with Next.js and Node.js.
- Framework: Next.js 14 with App Router
- Language: TypeScript
- Styling: Tailwind CSS
- State Management: React Context
- Authentication: Custom JWT-based auth
- Data Fetching: Native fetch API
- Form Handling: React Hook Form
- Components: Custom components with accessibility features
- CI/CD: Jenkins Pipeline
- Quality: SonarQube
- Package Registry: Nexus Repository
- Runtime: Node.js
- Framework: Express.js
- Database: MongoDB with Mongoose
- Authentication: JWT with bcrypt
- API Documentation: Swagger/OpenAPI
- Validation: Zod
- Error Handling: Custom middleware
- Node.js 18.x or later
- npm or yarn
- MongoDB instance
- Jenkins (for CI/CD)
- SonarQube (for code quality)
- Nexus Repository (for package management)
Create .env.local in the frontend directory:
NEXT_PUBLIC_API_URL=http://localhost:3001
NEXTAUTH_URL=http://localhost:3000
NEXTAUTH_SECRET=your-secret-keyCreate .env in the backend directory:
PORT=3001
MONGODB_URI=mongodb://localhost:27017/first-assembly
JWT_SECRET=your-secret-key
NODE_ENV=development- Clone the repository
git clone https://github.com/spitfire096/church-app.git
cd church-app- Install Frontend Dependencies
cd FA-frontend
npm install
npm run dev- Install Backend Dependencies
cd ../FA-backend
npm install
npm run dev-
First Timer Management
- Registration with detailed information
- Gender tracking
- Postal code for location analysis
- Student status tracking
- Spiritual journey tracking (born again, water baptism)
- Prayer request handling
-
Follow-up System
- Automated task creation
- Status tracking
- Email notifications
- Progress monitoring
-
Dashboard
- Real-time statistics
- Recent activities
- Pending tasks
- Performance metrics
The project uses Jenkins for continuous integration and deployment:
- Automated builds
- SonarQube analysis
- Nexus artifact storage
- Automated testing
- Quality gate enforcement
- SonarQube for code quality analysis
- Jest for unit testing
- E2E testing with Cypress
- Continuous monitoring
Please read CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.
This project is licensed under the MIT License - see the LICENSE file for details.
See CONTRIBUTORS.md for the list of contributors.