Blossoms Web App is a comprehensive web platform designed to streamline the management of the Blossoms inter-school competition — handling event registrations, scheduling, results tracking, and administrative workflows.
Blossoms Web App provides an all-in-one solution for organizing large-scale inter-school competitions. The platform features role-based access for administrators, organizers, and students, making event management efficient, transparent, and user-friendly.
Built with a modern tech stack and modular architecture, the app aims to automate administrative tasks, reduce manual overhead, and improve the overall competition experience for all stakeholders.
- 🔐 User Authentication — Secure login system with role-based access control
- 📋 Event Management — Create, edit, and manage competition events seamlessly
- 📝 Registration System — Simple and intuitive signup process for students and teams
- 📅 Scheduling & Timetables — Automated event scheduling to avoid conflicts
- 🏆 Results Tracking — Real-time results updates and dynamic leaderboards
- 📱 Responsive Design — Optimized experience across desktop, tablet, and mobile devices
- ⚡ Modular Architecture — Clean separation of concerns with client, server, and shared modules
- Frontend: React, Vite, TypeScript, Tailwind CSS
- Backend: Node.js, Express.js
- Database: MongoDB / PostgreSQL (specify your choice)
- Authentication: JWT / OAuth (specify your method)
- Deployment: Vercel / Netlify / AWS (specify your platform)
Before you begin, ensure you have the following installed:
- Node.js (v18 or higher)
- npm or yarn
- Git
- MongoDB / PostgreSQL (if running locally)
# 1. Clone the repository
git clone https://github.com/blossomssosbyc/Blossoms-Web-App.git
cd Blossoms-Web-App
# 2. Install dependencies for the client
cd client
npm install
# 3. Install dependencies for the server
cd ../server
npm install
# 4. Set up environment variables
# Create a .env file in both client and server directories
# See .env.example for required variables
# 5. Start the development servers
# Terminal 1 - Start the backend server
cd server
npm run dev
# Terminal 2 - Start the frontend client
cd client
npm run devCreate .env files in both client/ and server/ directories:
server/.env
PORT=5000
DATABASE_URL=your_database_connection_string
JWT_SECRET=your_jwt_secret
NODE_ENV=developmentclient/.env
VITE_API_URL=http://localhost:5000
VITE_APP_NAME=Blossoms Web App- Open your browser and navigate to
http://localhost:5173(or the port displayed in your terminal) - Sign up or log in with your credentials
- Admins can access the dashboard to create and manage events
- Students can browse available events and register for competitions
- View schedules, results, and leaderboards in real-time
Blossoms-Web-App/
├── client/ # Frontend React application
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ ├── pages/ # Page-level components
│ │ ├── utils/ # Helper functions
│ │ └── App.tsx # Main app component
│ └── package.json
├── server/ # Backend Express API
│ ├── src/
│ │ ├── controllers/ # Route controllers
│ │ ├── models/ # Database models
│ │ ├── routes/ # API routes
│ │ └── middleware/ # Custom middleware
│ └── package.json
├── shared/ # Shared types and utilities
└── README.md
# Run frontend tests
cd client
npm test
# Run backend tests
cd server
npm testcd client
npm run build
# Deploy the 'dist' folder to your hosting platformcd server
# Follow your platform's deployment guide
# Ensure environment variables are configuredContributions are welcome! To contribute:
- Fork the repository
- Create a new 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.
For questions, issues, or feedback:
- Open an issue on GitHub Issues
- Reach out via email: [email protected]
- Built with ❤️ for the Blossoms Competition
- Thanks to all contributors and supporters
- Special thanks to the open-source community
⭐ If you find this project helpful, consider giving it a star!