A simple full-stack CRUD application with user authentication built as a one-week team project to practice modern web development workflows and collaboration.
This application allows users to register, log in, and manage a collection of courses with full create, read, update, and delete functionality.
- User Authentication - JWT-based registration and login system
- Course Management - Complete CRUD operations for courses
- Protected Routes - Secure access to course management features
- Responsive Design - Works on desktop and mobile devices
Frontend:
- React with Vite
- Fetch for API requests
- React Router for navigation
- CSS for styling
Backend:
- Node.js with Express
- JWT for authentication
- RESTful API design
- MongoDB for data storage
Development Tools:
- GitHub for version control and collaboration
- GitHub Actions for CI/CD
- ESLint for code quality
- Jest for testing
POST /auth/register- User registrationPOST /auth/login- User login
GET /courses- List all coursesPOST /courses- Create a new coursePUT /courses/:id- Update a courseDELETE /courses/:id- Delete a course
mini-course-app/
├── client/ # React frontend
│ ├── public/
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ ├── pages/ # Route-level components
│ │ ├── utils/ # Helper functions
│ │ ├── App.js
│ │ └── index.js
│ ├── package.json
│ └── .env
├── server/ # Express backend
│ ├── controllers/ # Route handlers
│ ├── routes/ # API routes
│ ├── middleware/ # Custom middleware
│ ├── models/ # Data models
│ ├── tests/ # Test files
│ ├── config/ # Configuration files
│ ├── app.js
│ ├── server.js
│ ├── package.json
│ └── .env
└── README.md
- Node.js (v18 or higher)
- npm or yarn
- Git
-
Clone the repository:
git clone <repository-url> cd mini-course-app
-
Install backend dependencies:
cd server npm install -
Install frontend dependencies:
cd ../client npm install -
Set up environment variables:
# Copy example files and fill in your values cp .env.example server/.env cp .env.example client/.env -
Start the development servers:
# Terminal 1 - Backend cd server npm run dev # Terminal 2 - Frontend cd client npm run dev
This project follows a collaborative development workflow:
- Branch Creation - Create feature branches from main
- Pull Requests - Submit changes via PR for review
- Code Review - At least one team member reviews each PR
- Testing - All tests must pass before merging
- CI/CD - Automated testing and linting on each PR
See CONTRIBUTING.md for detailed guidelines.
Through this project, team members will gain experience with:
- Collaboration - GitHub workflow, code reviews, project management
- Frontend Development - React components, state management, API integration
- Backend Development - Express routing, middleware, authentication
- Full-Stack Integration - Connecting frontend and backend systems
- Testing - Writing and running unit tests
- DevOps - CI/CD pipelines and deployment strategies
Run tests for both frontend and backend:
# Backend tests
cd server
npm test
# Frontend tests
cd client
npm testPlease read CONTRIBUTING.md for details on our development process and how to submit pull requests.
-
- Frontend Lead
-
- Backend Lead
-
- Cloud Lead
-
- Cybersecurity Lead
This project is created for educational purposes as part of a coding bootcamp/course.