A full-stack web application designed to streamline project competitions, submissions, and judging processes. This platform provides a comprehensive solution for organizers to manage events and for participants to submit their projects seamlessly.
The Competition Management Platform is a sophisticated full-stack application that revolutionizes how project competitions are organized, submitted, and judged. Built with modern web technologies, it provides a seamless experience for both competition organizers and participants with real-time updates and dynamic user interfaces.
- End-to-End Competition Management - From creation to winner declaration
- Role-Based Access Control - Separate interfaces for Admins and Participants
- Real-Time Updates - Dynamic UI with live data synchronization
- Professional Judging Workflow - Streamlined submission review and approval process
- Competition Creation - Set up and configure new project events
- Submission Management - Review, approve, or reject project entries
- Judging Dashboard - Comprehensive overview of all submissions
- Winner Declaration - Announce and manage competition results
- User Management - Monitor participant activities and submissions
- Project Submission - Easy upload and submission process
- Competition Browser - Discover and join available events
- RESTful API Architecture - Clean, scalable backend structure
- Role-Based Dashboards - Customized interfaces for different user types
- Real-Time Data Updates - Dynamic content without page refresh
- Responsive Design - Optimized for desktop, tablet, and mobile
- Secure Authentication - Protected routes and data access
- Angular 16+ - Modern frontend framework
- TypeScript - Type-safe JavaScript development
- Bootstrap 5 - Responsive CSS framework
- Custom CSS - Tailored styling and animations
- FontAwesome - Professional icon library
- RxJS - Reactive programming and state management
- Node.js - Runtime environment
- Express.js - Web application framework
- RESTful APIs - Structured backend communication
- JWT Authentication - Secure user authentication
- MongoDB - NoSQL database for flexible data storage
- Mongoose - MongoDB object modeling
- Git - Version control system
- Node.js (v16 or higher)
- Angular CLI (v15 or higher)
- MongoDB (local or cloud instance)
- Git
# Clone the repository
git clone https://github.com/anoopsinghji/Project-Submission-System.git
# Navigate to frontend directory
cd Project-Submission-System/frontend
# Install dependencies
npm install
# Start development server
ng serve
# Application will be available at http://localhost:4200# Navigate to backend directory
cd backend
# Install dependencies
npm install
# Set environment variables
cp .env.example .env
# Edit .env with your MongoDB URI and JWT secret
# Start backend server
npm run dev
# Server will run on http://localhost:3000MONGODB_URI=mongodb://localhost:27017/competition-platform
JWT_SECRET=your_jwt_secret_here
PORT=3000-
Access the Platform
- Open your browser and navigate to
http://localhost:4200
- Open your browser and navigate to
-
Register as Participant
- Create an account and browse available competitions
- Submit your project to participate
-
Admin Access
- Use admin credentials to access the admin dashboard
- Create competitions and manage submissions
POST /api/auth/register- User registrationPOST /api/auth/login- User loginGET /api/auth/profile- Get user profile
GET /api/competitions- Get all competitionsPOST /api/competitions- Create new competition (Admin)PUT /api/competitions/:id- Update competition (Admin)DELETE /api/competitions/:id- Delete competition (Admin)
POST /api/submissions- Submit projectGET /api/submissions- Get all submissions (Admin)PUT /api/submissions/:id- Update submission statusGET /api/submissions/competition/:id- Get submissions by competition
- Custom Animations - Smooth transitions and micro-interactions
- Responsive Grid System - Adapts to all screen sizes
- Professional Color Scheme - Consistent branding throughout
- Interactive Components - Dynamic forms and modals
- Loading States - Enhanced user experience during operations
# Build for production
ng build --prod
# Deploy to your preferred hosting service
# Recommended: Vercel, Netlify, or Firebase Hosting# Set production environment variables
NODE_ENV=production
MONGODB_URI=your_production_mongo_uri
# Deploy to Heroku, AWS, or DigitalOcean- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Follow Angular Style Guide
- Use TypeScript strict mode
- Implement proper error handling
- Write meaningful commit messages
If you have any questions or need help with setup, please open an issue on GitHub.
⭐ Don't forget to star this repository if you find it helpful!